71 lines
1.5 KiB
Bash
Executable File
71 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -eu
|
|
|
|
juju-log "rabbitmq-server: Firing config hook"
|
|
|
|
export HOME=/root # (HOME is not set on first run)
|
|
RABBIT_PLUGINS=/usr/lib/rabbitmq/lib/rabbitmq_server-*/sbin/rabbitmq-plugins
|
|
if [ "`config-get management_plugin`" == "True" ]; then
|
|
$RABBIT_PLUGINS enable rabbitmq_management
|
|
open-port 55672/tcp
|
|
else
|
|
$RABBIT_PLUGINS disable rabbitmq_management
|
|
close-port 55672/tcp
|
|
fi
|
|
|
|
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"}
|
|
]},
|
|
open-port `config-get ssl_port`/tcp
|
|
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
|