2929usage () {
3030 echo
3131 echo " Usage: install.sh [-u install_user] [-g install_group] [-k keep conf]"
32- echo " [-d ONE_LOCATION] [-c cli|ec2] [-r]"
32+ echo " [-d ONE_LOCATION] [-c cli|ec2] [-a arch] [- r]"
3333 echo " [-s] [-p] [-G] [-6] [-f] [-l] [-e] [-h]"
3434 echo
3535 echo " -u: user that will run opennebula, defaults to user executing install.sh"
@@ -50,11 +50,12 @@ usage() {
5050 echo " -r: remove Opennebula, only useful if -d was not specified, otherwise"
5151 echo " rm -rf \$ ONE_LOCATION would do the job"
5252 echo " -l: creates symlinks instead of copying files, useful for development"
53+ echo " -a: architecuture of downloaded vendor artifacts, default: x86_64"
5354 echo " -h: prints this help"
5455}
5556# -------------------------------------------------------------------------------
5657
57- PARAMETERS=" :u:g:d:ehkrlcspFPorlfG6"
58+ PARAMETERS=" :u:g:d:a: ehkrlcspFPorlfG6"
5859
5960INSTALL_ETC=" yes"
6061UNINSTALL=" no"
@@ -69,6 +70,7 @@ ONEFLOW="no"
6970ONEADMIN_USER=` id -u`
7071ONEADMIN_GROUP=` id -g`
7172SRC_DIR=$PWD
73+ ARCH=" x86_64"
7274
7375while getopts $PARAMETERS opt; do
7476 case $opt in
@@ -85,13 +87,19 @@ while getopts $PARAMETERS opt; do
8587 f) ONEFLOW=" yes" ;;
8688 u) ONEADMIN_USER=" $OPTARG " ;;
8789 g) ONEADMIN_GROUP=" $OPTARG " ;;
90+ a) ARCH=" $OPTARG " ;;
8891 d) ROOT=" $OPTARG " ;;
8992 \? ) usage; exit 1 ;;
9093 esac
9194done
9295
9396shift $(( $OPTIND - 1 ))
9497
98+ if [ " $ARCH " != x86_64 ] && [ " $ARCH " != arm64 ]; then
99+ echo " Unsupported architecture: $ARCH , only x86_64 or arm64"
100+ exit 1
101+ fi
102+
95103# -------------------------------------------------------------------------------
96104# Definition of locations
97105# -------------------------------------------------------------------------------
@@ -3048,12 +3056,25 @@ CONTEXT_SHARE=$(find share/context/ -type f \( ! -iname "*.sh" ! -iname "SConstr
30483056# PROMETHEUS
30493057# -------------------------------------------------------------------------------
30503058
3059+ ALERTMANAGER_VENDOR_DIR=' alertmanager'
3060+ NODE_EXPORTER_VENDOR_DIR=' node_exporter'
3061+ PROMETHEUS_VENDOR_DIR=' prometheus'
3062+ if [ $ARCH = ' arm64' ]; then
3063+ ALERTMANAGER_VENDOR_DIR=' alertmanager.arm64'
3064+ NODE_EXPORTER_VENDOR_DIR=' node_exporter.arm64'
3065+ PROMETHEUS_VENDOR_DIR=' prometheus.arm64'
3066+
3067+ # adjust restic binary symlink
3068+ rm src/datastore_mad/remotes/restic/restic
3069+ ln -s ./vendor/bin/restic.arm64 src/datastore_mad/remotes/restic/restic
3070+ fi
3071+
30513072# ALERTMANAGER
3052- ONEPROMETHEUS_ALERTMANAGER_BIN_FILES=" src/oneprometheus/vendor/alertmanager /alertmanager \
3053- src/oneprometheus/vendor/alertmanager /amtool"
3073+ ONEPROMETHEUS_ALERTMANAGER_BIN_FILES=" src/oneprometheus/vendor/${ALERTMANAGER_VENDOR_DIR} /alertmanager \
3074+ src/oneprometheus/vendor/${ALERTMANAGER_VENDOR_DIR} /amtool"
30543075ONEPROMETHEUS_ALERTMANAGER_CONFIG_FILES=" src/oneprometheus/alertmanager/etc/alertmanager.yml"
3055- ONEPROMETHEUS_ALERTMANAGER_FILES=" src/oneprometheus/vendor/alertmanager /LICENSE \
3056- src/oneprometheus/vendor/alertmanager /NOTICE"
3076+ ONEPROMETHEUS_ALERTMANAGER_FILES=" src/oneprometheus/vendor/${ALERTMANAGER_VENDOR_DIR} /LICENSE \
3077+ src/oneprometheus/vendor/${ALERTMANAGER_VENDOR_DIR} /NOTICE"
30573078ONEPROMETHEUS_ALERTMANAGER_SYSTEMD_FILES=" src/oneprometheus/alertmanager/systemd/opennebula-alertmanager.service"
30583079
30593080# GRAFANA
@@ -3065,9 +3086,9 @@ ONEPROMETHEUS_LIBVIRT_EXPORTER_FILES="src/oneprometheus/opennebula-libvirt-expor
30653086ONEPROMETHEUS_LIBVIRT_EXPORTER_SYSTEMD_FILES=" src/oneprometheus/opennebula-libvirt-exporter/systemd/opennebula-libvirt-exporter.service"
30663087
30673088# NODE-EXPORTER
3068- ONEPROMETHEUS_NODE_EXPORTER_BIN_FILES=" src/oneprometheus/vendor/node_exporter /node_exporter"
3069- ONEPROMETHEUS_NODE_EXPORTER_FILES=" src/oneprometheus/vendor/node_exporter /LICENSE \
3070- src/oneprometheus/vendor/node_exporter /NOTICE"
3089+ ONEPROMETHEUS_NODE_EXPORTER_BIN_FILES=" src/oneprometheus/vendor/${NODE_EXPORTER_VENDOR_DIR} /node_exporter"
3090+ ONEPROMETHEUS_NODE_EXPORTER_FILES=" src/oneprometheus/vendor/${NODE_EXPORTER_VENDOR_DIR} /LICENSE \
3091+ src/oneprometheus/vendor/${NODE_EXPORTER_VENDOR_DIR} /NOTICE"
30713092ONEPROMETHEUS_NODE_EXPORTER_SYSTEMD_FILES=" src/oneprometheus/node_exporter/systemd/opennebula-node-exporter.service"
30723093
30733094# OPENNEBULA-EXPORTER
@@ -3080,14 +3101,14 @@ ONEPROMETHEUS_OPENNEBULA_EXPORTER_FILES="src/oneprometheus/opennebula-exporter/s
30803101ONEPROMETHEUS_OPENNEBULA_EXPORTER_SYSTEMD_FILES=" src/oneprometheus/opennebula-exporter/systemd/opennebula-exporter.service"
30813102
30823103# PROMETHEUS
3083- ONEPROMETHEUS_PROMETHEUS_BIN_FILES=" src/oneprometheus/vendor/prometheus /prometheus \
3084- src/oneprometheus/vendor/prometheus /promtool"
3104+ ONEPROMETHEUS_PROMETHEUS_BIN_FILES=" src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR} /prometheus \
3105+ src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR} /promtool"
30853106ONEPROMETHEUS_PROMETHEUS_CONFIG_FILES=" src/oneprometheus/prometheus/etc/prometheus.yml \
30863107 src/oneprometheus/prometheus/etc/rules.yml"
3087- ONEPROMETHEUS_PROMETHEUS_FILES=" src/oneprometheus/vendor/prometheus /console_libraries/ \
3088- src/oneprometheus/vendor/prometheus /consoles/ \
3089- src/oneprometheus/vendor/prometheus /LICENSE \
3090- src/oneprometheus/vendor/prometheus /NOTICE"
3108+ ONEPROMETHEUS_PROMETHEUS_FILES=" src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR} /console_libraries/ \
3109+ src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR} /consoles/ \
3110+ src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR} /LICENSE \
3111+ src/oneprometheus/vendor/${PROMETHEUS_VENDOR_DIR} /NOTICE"
30913112ONEPROMETHEUS_PROMETHEUS_SHARE_FILES=" src/oneprometheus/prometheus/share/patch_datasources.rb"
30923113ONEPROMETHEUS_PROMETHEUS_SYSTEMD_FILES=" src/oneprometheus/prometheus/systemd/opennebula-prometheus.service"
30933114
0 commit comments