diff options
| author | Jenkins <jenkins@review.openstack.org> | 2015-07-04 06:52:19 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2015-07-04 06:52:19 +0000 |
| commit | f79c19f9c083fa34a1093a17031cd2e7ca37e34f (patch) | |
| tree | 88fc2895cfb8e3b4da13359eefd14c48ebd35995 /docker/common | |
| parent | 097734fbe06d4b52fabb2ec5edecb2ebb782db2e (diff) | |
| parent | c97ccd6a5f7330d88dfba94a8226948fb320cba6 (diff) | |
| download | kolla-f79c19f9c083fa34a1093a17031cd2e7ca37e34f.tar.gz kolla-f79c19f9c083fa34a1093a17031cd2e7ca37e34f.zip | |
Merge "Ansible Rabbitmq support"
Diffstat (limited to 'docker/common')
| -rw-r--r-- | docker/common/rabbitmq/config-external.sh | 14 | ||||
| -rwxr-xr-x | docker/common/rabbitmq/config-internal.sh | 10 | ||||
| -rw-r--r-- | docker/common/rabbitmq/config-rabbit.sh | 55 | ||||
| -rwxr-xr-x | docker/common/rabbitmq/start.sh | 22 |
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 |
