summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Redondo Marchena <francisco.marchena@codethink.co.uk>2014-11-11 18:07:35 +0000
committerRichard Ipsum <richardipsum@fastmail.co.uk>2014-11-27 18:12:13 +0000
commit5d2153b48969e58163634f95a874d03b4db3ee2d (patch)
tree6f679899eb1022829c97dad718fb0f3541f27961
parent4993f61b2f0d44084a081ce865190113ea0f0361 (diff)
downloaddefinitions-5d2153b48969e58163634f95a874d03b4db3ee2d.tar.gz
TO_FIX: Attempt to fix rabbitmq-server service
Changes done: - Remove the call to rabbitmq-server service inside of rabbitmq-setup - Rewrite the rabbitmq-server service because the current rabbitmq-server source does not support notify type of systemd unit, the current approach does not work because the server does not run properly the first attempt (it does if it is manually rebooted). Fedora/devstack guys have patches to add systemd notify support for this, see: [1] https://peter.fedorapeople.org/rabbitmq-server-0001-Add-systemd-notify-support.patch [2] http://pkgs.fedoraproject.org/cgit/rabbitmq-server.git/tree/rabbitmq-server-systemd-notify-support.patch [3] http://pkgs.fedoraproject.org/cgit/rabbitmq-server.git/commit/?id=eea61e0 but this implies to add erlang-sd_notify: [4] http://pkgs.fedoraproject.org/cgit/erlang-sd_notify.git/tree/erlang-sd_notify.spec and [5] https://apps.fedoraproject.org/packages/erlang-sd_notify/sources/spec and [6] possibly the erlang builder "rebar": https://github.com/rebar/rebar - Link the rabbitmq-server service to multi.target.wants Other interesting links to configure rabbit: [7] https://www.rabbitmq.com/configure.html [8] https://www.rabbitmq.com/configure.html#configuration-file
-rw-r--r--openstack-rabbitmq.configure3
-rw-r--r--openstack/etc/systemd/system/openstack-rabbitmq-server.service14
-rw-r--r--openstack/usr/share/openstack/openstack-rabbitmq-setup5
3 files changed, 15 insertions, 7 deletions
diff --git a/openstack-rabbitmq.configure b/openstack-rabbitmq.configure
index 0980b2f5..ef2f6299 100644
--- a/openstack-rabbitmq.configure
+++ b/openstack-rabbitmq.configure
@@ -38,3 +38,6 @@ sed -f "$ROOT"/etc/openstack-rabbitmq-setup.sed -i \
ln -s "/etc/systemd/system/openstack-rabbitmq-setup.service" \
"$ROOT/etc/systemd/system/multi-user.target.wants/openstack-rabbitmq-setup.service"
+
+ln -s "/etc/systemd/system/openstack-rabbitmq-server.service" \
+ "$ROOT/etc/systemd/system/multi-user.target.wants/openstack-rabbitmq-server.service"
diff --git a/openstack/etc/systemd/system/openstack-rabbitmq-server.service b/openstack/etc/systemd/system/openstack-rabbitmq-server.service
index bee66e9f..6f12e437 100644
--- a/openstack/etc/systemd/system/openstack-rabbitmq-server.service
+++ b/openstack/etc/systemd/system/openstack-rabbitmq-server.service
@@ -1,13 +1,21 @@
[Unit]
-Description=RabbitMQ broker: Enable AMQP service provided by RabbitMQ broker
-After=syslog.target network.target
+Description=RabbitMQ broker
+After=syslog.target network.target openstack-rabbitmq-setup.service
+Requires=openstack-rabbitmq-setup.service
[Service]
-Type=notify
+Type=simple
User=rabbitmq
Group=rabbitmq
+Environment="RABBITMQ_PID_FILE=/var/run/rabbitmq/pid" "HOME=/var/lib/rabbitmq"
+WorkingDirectory=/var/lib/rabbitmq
+# Ensure cookie is created to avoid race
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1059913
+ExecStartPre=-/bin/sh -c '/usr/sbin/rabbitmqctl status > /dev/null 2>&1'
ExecStart=/usr/sbin/rabbitmq-server
+ExecStartPost=/usr/sbin/rabbitmqctl wait /var/run/rabbitmq/pid
ExecStop=/usr/sbin/rabbitmqctl stop
+ExecStopPost=/bin/rm /var/run/rabbitmq/pid
[Install]
WantedBy=multi-user.target
diff --git a/openstack/usr/share/openstack/openstack-rabbitmq-setup b/openstack/usr/share/openstack/openstack-rabbitmq-setup
index fb83c039..af332841 100644
--- a/openstack/usr/share/openstack/openstack-rabbitmq-setup
+++ b/openstack/usr/share/openstack/openstack-rabbitmq-setup
@@ -38,9 +38,6 @@ if [ ! -d /var/log/rabbitmq ]; then
chmod 755 /var/log/rabbitmq
fi
-systemctl start openstack-rabbitmq-server
-
-ln -s "/etc/systemd/system/openstack-rabbitmq-server.service" \
- "/etc/systemd/system/multi-user.target.wants/openstack-rabbitmq-server.service"
+chown -R rabbitmq:rabbitmq /var/lib/rabbitmq
exit 0