Skip to content
Snippets Groups Projects
launcher.sh 3.45 KiB
#!/bin/bash
set -e
# This script installs a MS/worker/campus-manager/cache/MV using envsetup on a system

# Prerequisites
# 1. create DNS entries
#   alpha.ubicast.net
#   alpha-cm.ubicast.net
#   alpha-mon.ubicast.net
# 2. create system in panel
# 3. launcher.sh

# log
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
mkdir -p "${DIR}/log"
LOG_FILE="${DIR}/log/launcher_$(date +%F).log"
exec > >(tee -i ${LOG_FILE})

# log envsetup version
version="$( cd "${DIR}" && git log -1 --pretty='format:%H %ad' --date=iso )"
echo "Envsetup version:"
echo "$version"

# envsetup action calls
init() {
	python3 /root/envsetup/update_envsetup.py

	python3 /root/envsetup/envsetup.py 31
	python3 /root/envsetup/envsetup.py 32
	python3 /root/envsetup/envsetup.py 33
	python3 /root/envsetup/envsetup.py 34
	python3 /root/envsetup/envsetup.py 35

	python3 /root/envsetup/envsetup.py 11
	python3 /root/envsetup/envsetup.py 12
	python3 /root/envsetup/envsetup.py 13

	python3 /root/envsetup/envsetup.py 21
	python3 /root/envsetup/envsetup.py 22
	python3 /root/envsetup/envsetup.py 28
}

monitor() {
	python3 /root/envsetup/envsetup.py 25
	python3 /root/envsetup/envsetup.py 26
	python3 /root/envsetup/envsetup.py 41
	python3 /root/envsetup/envsetup.py 28
}

mediaserver() {
	python3 /root/envsetup/envsetup.py 23
	python3 /root/envsetup/envsetup.py 24
	python3 /root/envsetup/envsetup.py 71
	python3 /root/envsetup/envsetup.py 25
	python3 /root/envsetup/envsetup.py 51
	python3 /root/envsetup/envsetup.py 25
	python3 /root/envsetup/envsetup.py 28
}

worker() {
	python3 /root/envsetup/envsetup.py 72
	python3 /root/envsetup/envsetup.py 26
}

campusmanager() {
	python3 /root/envsetup/envsetup.py 23
	python3 /root/envsetup/envsetup.py 25
	python3 /root/envsetup/envsetup.py 61
	python3 /root/envsetup/envsetup.py 62
	python3 /root/envsetup/envsetup.py 25
	python3 /root/envsetup/envsetup.py 28
}

cache() {
	python3 /root/envsetup/envsetup.py 81
	python3 /root/envsetup/envsetup.py 82
	python3 /root/envsetup/envsetup.py 25
	python3 /root/envsetup/envsetup.py 26
}

bench() {
	python3 /root/envsetup/envsetup.py 52
}

tests() {
	python3 /root/envsetup/tester.py
}

backup_server() {
	python3 /root/envsetup/envsetup.py 91
}

exportvm() {
	python3 /root/envsetup/envsetup.py 111
}

exportvm_local() {
	python3 /root/envsetup/envsetup.py 112
}

case "$1" in
	"ms")
		init
		monitor
		campusmanager
		mediaserver
		[[ $2 = "--skip-tests" ]] || tests
	;;

	"w")
		init
		worker
		[[ $2 = "--skip-tests" ]] || tests
	;;

	"cm")
		init
		monitor
		campusmanager
		[[ $2 = "--skip-tests" ]] || tests
	;;

	"cache")
		init
		cache
	;;

	"mv")
		init
		backup_server
	;;

	"demokit")
		init
		monitor
		campusmanager
		mediaserver
        # install celerity-worker
        python3 /root/envsetup/envsetup.py 72
        # deploy videos
        python3 /root/envsetup/envsetup.py 53
		[[ $2 = "--skip-tests" ]] || tests
	;;

	"b")
		init
		bench
	;;

	"exportvm")
		CONF="$2"
		exportvm
	;;

	"exportvm_local")
		VM_NAME="$2"
		exportvm_local
	;;

	*)
		echo "
Usage: $0 [arg] [--skip-tests]
ms          build a MediaServer & CM
w           build a Worker
cm          build a Campus-Manager
cache       build a Cache server (munin needs manual configuration on master AND node)
mv          build a MediaVault

After usage a log file will be generated under /root/$(date +%F)_envsetup.log

From admin machine:
Usage: $0 exportvm
exportvm        [conf_file]    export VM from an hypervisor
exportvm_local  [vm name]      export VM from local vbox
"
	;;
esac