aboutsummaryrefslogtreecommitdiff
path: root/docker/common
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-07-04 06:52:19 +0000
committerGerrit Code Review <review@openstack.org>2015-07-04 06:52:19 +0000
commitf79c19f9c083fa34a1093a17031cd2e7ca37e34f (patch)
tree88fc2895cfb8e3b4da13359eefd14c48ebd35995 /docker/common
parent097734fbe06d4b52fabb2ec5edecb2ebb782db2e (diff)
parentc97ccd6a5f7330d88dfba94a8226948fb320cba6 (diff)
downloadkolla-f79c19f9c083fa34a1093a17031cd2e7ca37e34f.tar.gz
kolla-f79c19f9c083fa34a1093a17031cd2e7ca37e34f.zip
Merge "Ansible Rabbitmq support"
Diffstat (limited to 'docker/common')
-rw-r--r--docker/common/rabbitmq/config-external.sh14
-rwxr-xr-xdocker/common/rabbitmq/config-internal.sh10
-rw-r--r--docker/common/rabbitmq/config-rabbit.sh55
-rwxr-xr-xdocker/common/rabbitmq/start.sh22
4 files changed, 98 insertions, 3 deletions
diff --git a/docker/common/rabbitmq/config-external.sh b/docker/common/rabbitmq/config-external.sh
new file mode 100644
index 000000000..40abd6156
--- /dev/null
+++ b/docker/common/rabbitmq/config-external.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# Cluster configuration
+if [[ -f /opt/kolla/rabbitmq/rabbitmq.config ]]; then
+ cp -af /opt/kolla/rabbitmq/rabbitmq.config /etc/rabbitmq/rabbitmq.config
+ chown rabbitmq: /etc/rabbitmq/rabbitmq.config
+ chmod 0600 /etc/rabbitmq/rabbitmq.config
+fi
+
+if [[ -f /opt/kolla/rabbitmq/rabbitmq-env.conf ]]; then
+ cp -af /opt/kolla/rabbitmq/rabbitmq-env.conf /etc/rabbitmq/rabbitmq-env.conf
+ chown rabbitmq: /etc/rabbitmq/rabbitmq-env.conf
+ chmod 0600 /etc/rabbitmq/rabbitmq-env.conf
+fi
diff --git a/docker/common/rabbitmq/config-internal.sh b/docker/common/rabbitmq/config-internal.sh
new file mode 100755
index 000000000..8fc77f421
--- /dev/null
+++ b/docker/common/rabbitmq/config-internal.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-rabbit.sh
+
+check_required_vars RABBITMQ_PASS RABBITMQ_USER
+
+configure_rabbit
+
+exec /usr/sbin/rabbitmq-server
diff --git a/docker/common/rabbitmq/config-rabbit.sh b/docker/common/rabbitmq/config-rabbit.sh
new file mode 100644
index 000000000..750b253a4
--- /dev/null
+++ b/docker/common/rabbitmq/config-rabbit.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+RABBITMQ_CLUSTER_CONFIGURATION=""
+
+function configure_files {
+ sed -i '
+ s|@RABBITMQ_USER@|'"$RABBITMQ_USER"'|g
+ s|@RABBITMQ_PASS@|'"$RABBITMQ_PASS"'|g
+ s|@RABBITMQ_CLUSTER_CONFIGURATION@|'"$RABBITMQ_CLUSTER_CONFIGURATION"'|g
+ ' /etc/rabbitmq/rabbitmq.config
+
+ sed -i '
+ s|@RABBITMQ_LOG_BASE@|'"$RABBITMQ_LOG_BASE"'|g
+ ' /etc/rabbitmq/rabbitmq-env.conf
+}
+
+function set_rabbitmq_cookie {
+ echo "${RABBITMQ_CLUSTER_COOKIE}" > /var/lib/rabbitmq/.erlang.cookie
+ chown rabbitmq: /var/lib/rabbitmq/.erlang.cookie
+ chmod 400 /var/lib/rabbitmq/.erlang.cookie
+}
+
+function configure_cluster {
+ check_required_vars RABBITMQ_CLUSTER_COOKIE RABBITMQ_CLUSTER_NODES
+ set_rabbitmq_cookie
+
+ HOSTNAME=""
+ IP_ADDRESS=""
+ DELIMETER=""
+
+ for node in ${RABBITMQ_CLUSTER_NODES}; do
+ HOSTNAME=`echo ${node} | cut -d'@' -f1`
+ IP_ADDRESS=`echo ${node} | cut -d'@' -f2`
+ CLUSTER_NODES="${CLUSTER_NODES}${DELIMETER}rabbit@${HOSTNAME}"
+ echo "${IP_ADDRESS} ${HOSTNAME}" >> /etc/hosts
+ DELIMETER=","
+ done
+ RABBITMQ_CLUSTER_CONFIGURATION="{cluster_nodes, {[$CLUSTER_NODES], disc}},"
+}
+
+function configure_rabbit {
+ if [ "$RABBITMQ_CLUSTER_NODES" ] && [ "$RABBITMQ_CLUSTER_COOKIE" ]; then
+ configure_cluster
+ elif [ "$RABBITMQ_SERVICE_HOST" ]; then
+ # work around:
+ # https://bugs.launchpad.net/ubuntu/+source/rabbitmq-server/+bug/653405
+ echo "${RABBITMQ_SERVICE_HOST} `/usr/bin/hostname -s`" > /etc/hosts
+ else
+ echo "You need RABBITMQ_SERVICE_HOST or RABBITMQ_CLUSTER_NODES & " \
+ " RABBITMQ_CLUSTER_COOKIES variables"
+ exit 1
+ fi
+
+ configure_files
+}
diff --git a/docker/common/rabbitmq/start.sh b/docker/common/rabbitmq/start.sh
index 4e76e382f..8f7fef330 100755
--- a/docker/common/rabbitmq/start.sh
+++ b/docker/common/rabbitmq/start.sh
@@ -1,7 +1,23 @@
#!/bin/bash
-. /opt/kolla/config-rabbit.sh
+set -o errexit
-configure_rabbit
+CMD="/usr/sbin/rabbitmq-server"
+ARGS=""
-exec /usr/sbin/rabbitmq-server
+# loading common functions
+source /opt/kolla/kolla-common.sh
+
+# config-internal script exec out of this function, it does not return here
+set_configs
+
+# loading functions
+source /opt/kolla/config-rabbit.sh
+
+# This catches all cases of the BOOTSTRAP variable being set, including empty
+if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
+ set_rabbitmq_cookie
+ exit 0
+fi
+
+$CMD $ARGS