-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathqueue-services.sh
More file actions
executable file
·83 lines (66 loc) · 2.53 KB
/
queue-services.sh
File metadata and controls
executable file
·83 lines (66 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/bash
if [ -z "$1" ]
then
echo "No instance argument supplied"
echo "Usage: "$0" instance {start|stop|restart} [docker-compose options]"
exit 1
fi
set -o allexport
source config/$1.env
set +o allexport
if [[ -z "${CODE_BASE_DIR}" ]];
then
CODE_BASE_DIR="../uo-data-box"
fi
# function for creating rabbitmq password hash
password_hash()
{
SALT=$(od -A n -t x -N 4 /dev/urandom)
PASS=$SALT$(echo -n $1 | xxd -ps | tr -d '\n' | tr -d ' ')
PASS=$(echo -n $PASS | xxd -r -p | openssl sha256 | head -c 128)
PASS=$(echo -n $SALT$PASS | xxd -r -p | base64 | tr -d '\n')
echo "$PASS"
}
if [[ -z "${RABBITMQ_ADMIN_PASSWORD}" || -z "${UO_MASTER_BROKER_AMQP_PASSWORD}" || -z ${UO_BROKER_AMQP_PASSWORD} || -z ${UO_STREAM_AMQP_PASSWORD} ]]; then
echo "Some AMQP password variables are not set"
exit 1
fi
# create definitions file for rabbitmq with hashed passwords
admin_hash=$(password_hash $RABBITMQ_ADMIN_PASSWORD)
master_hash=$(password_hash $UO_MASTER_BROKER_AMQP_PASSWORD)
broker_hash=$(password_hash $UO_BROKER_AMQP_PASSWORD)
stream_hash=$(password_hash $UO_STREAM_AMQP_PASSWORD)
sed "s#RABBITMQ_ADMIN_PASSWORD#"${admin_hash}"#g; s#UO_MASTER_BROKER_AMQP_PASSWORD#"${master_hash}"#g; s#UO_BROKER_AMQP_PASSWORD#"${broker_hash}"#g; s#UO_STREAM_AMQP_PASSWORD#"${stream_hash}"#g; s#UO_HOST#"${UO_HOST}"#g" config/definitions.json.template > ${CODE_BASE_DIR}/src/apps/master/config/rabbitmq/definitions.json
case "$2" in
start)
echo "[--] Starting $1 master queue services..."
docker-compose --project-name=${UO_INSTANCE} \
-f ${CODE_BASE_DIR}/src/apps/master/config/rabbitmq/docker-compose.yml \
up -d "${@:3}"
echo " "
;;
stop)
echo "[WARNING] This is a potentially destructive action."
echo " Data will be lost while AMQP services are down."
echo ""
echo "Will continue in 5 seconds..."
sleep 5
echo ""
echo "[--] Starting $1 master queue services..."
docker-compose --project-name=${UO_INSTANCE} \
-f ${CODE_BASE_DIR}/src/apps/master/config/rabbitmq/docker-compose.yml \
down "${@:3}"
echo " "
;;
restart)
echo "[--] Restarting $1 master queue services..."
docker-compose --project-name=${UO_INSTANCE} \
-f ${CODE_BASE_DIR}/src/apps/master/config/rabbitmq/docker-compose.yml \
restart "${@:3}"
echo " "
;;
*)
echo "Usage: "$0" instance {start|stop|restart} [docker-compose options]"
exit 1
esac
exit 0