charm-rabbitmq-server/hooks/config-changed

60 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
set -eu
juju-log "rabbitmq-server: Firing config hook"
ssl_enabled=`config-get ssl_enabled`
cd /etc/rabbitmq
new_config=`mktemp /etc/rabbitmq/.rabbitmq.config.XXXXXX`
chgrp rabbitmq "$new_config"
chmod g+r "$new_config"
exec 3> "$new_config"
cat >&3 <<EOF
[
{rabbit, [
EOF
ssl_key_file=/etc/rabbitmq/rabbit-server-privkey.pem
ssl_cert_file=/etc/rabbitmq/rabbit-server-cert.pem
if [ "$ssl_enabled" == "True" ]; then
umask 027
config-get ssl_key > "$ssl_key_file"
config-get ssl_cert > "$ssl_cert_file"
chgrp rabbitmq "$ssl_key_file" "$ssl_cert_file"
if [ ! -s "$ssl_key_file" ]; then
juju-log "ssl_key not set - can't configure SSL"
exit 0
fi
if [ ! -s "$ssl_cert_file" ]; then
juju-log "ssl_cert not set - can't configure SSL"
exit 0
fi
cat >&3 <<EOF
{ssl_listeners, [`config-get ssl_port`]},
{ssl_options, [
{certfile,"$ssl_cert_file"},
{keyfile,"$ssl_key_file"}
]},
EOF
fi
cat >&3 <<EOF
{tcp_listeners, [5672]}
]}
].
EOF
exec 3>&-
if [ -f rabbitmq.config ]; then
mv rabbitmq.config{,.bak}
fi
mv "$new_config" rabbitmq.config
/etc/init.d/rabbitmq-server restart