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 | |
| parent | 097734fbe06d4b52fabb2ec5edecb2ebb782db2e (diff) | |
| parent | c97ccd6a5f7330d88dfba94a8226948fb320cba6 (diff) | |
| download | kolla-f79c19f9c083fa34a1093a17031cd2e7ca37e34f.tar.gz kolla-f79c19f9c083fa34a1093a17031cd2e7ca37e34f.zip | |
Merge "Ansible Rabbitmq support"
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/centos/binary/rabbitmq/Dockerfile | 2 | ||||
| l--------- | docker/centos/binary/rabbitmq/config-external.sh | 1 | ||||
| l--------- | docker/centos/binary/rabbitmq/config-internal.sh | 1 | ||||
| l---------[-rw-r--r--] | docker/centos/binary/rabbitmq/config-rabbit.sh | 58 | ||||
| -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 |
8 files changed, 102 insertions, 61 deletions
diff --git a/docker/centos/binary/rabbitmq/Dockerfile b/docker/centos/binary/rabbitmq/Dockerfile index f42bc8307..ba2d748b5 100644 --- a/docker/centos/binary/rabbitmq/Dockerfile +++ b/docker/centos/binary/rabbitmq/Dockerfile @@ -8,7 +8,7 @@ RUN yum -y install \ /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management COPY rabbitmq.config rabbitmq-env.conf /etc/rabbitmq/ -COPY config-rabbit.sh /opt/kolla/config-rabbit.sh +COPY config-rabbit.sh config-external.sh config-internal.sh /opt/kolla/ COPY start.sh /start.sh CMD ["/start.sh"] diff --git a/docker/centos/binary/rabbitmq/config-external.sh b/docker/centos/binary/rabbitmq/config-external.sh new file mode 120000 index 000000000..e02e664c8 --- /dev/null +++ b/docker/centos/binary/rabbitmq/config-external.sh @@ -0,0 +1 @@ +../../../common/rabbitmq/config-external.sh
\ No newline at end of file diff --git a/docker/centos/binary/rabbitmq/config-internal.sh b/docker/centos/binary/rabbitmq/config-internal.sh new file mode 120000 index 000000000..73a13c772 --- /dev/null +++ b/docker/centos/binary/rabbitmq/config-internal.sh @@ -0,0 +1 @@ +../../../common/rabbitmq/config-internal.sh
\ No newline at end of file diff --git a/docker/centos/binary/rabbitmq/config-rabbit.sh b/docker/centos/binary/rabbitmq/config-rabbit.sh index 2be0f5b9c..6feee2aba 100644..120000 --- a/docker/centos/binary/rabbitmq/config-rabbit.sh +++ b/docker/centos/binary/rabbitmq/config-rabbit.sh @@ -1,57 +1 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh - -check_required_vars RABBITMQ_PASS RABBITMQ_USER - -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 configure_cluster { - check_required_vars RABBITMQ_CLUSTER_COOKIE RABBITMQ_CLUSTER_NODES - - echo "${RABBITMQ_CLUSTER_COOKIE}" > /var/lib/rabbitmq/.erlang.cookie - chown rabbitmq /var/lib/rabbitmq/.erlang.cookie - chmod 700 /var/lib/rabbitmq/.erlang.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 -} +../../../common/rabbitmq/config-rabbit.sh
\ No newline at end of file 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 |
