From 27bc3358ab3ccf85f942d7a537f7373b58f32c53 Mon Sep 17 00:00:00 2001 From: Pedro Alvarez Date: Thu, 29 Jan 2015 13:36:36 +0000 Subject: Changes needed to work with versions of systemd >= v215 The stderr string of the `systemctl enable` command has changed in the commit 749ebb2da4933de68bfaa4d6f6ffd9e4692ee547 of systemd. We use this string to trigger another Ansible task. --- ansible/roles/trove-setup/tasks/minions.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ansible/roles/trove-setup/tasks/minions.yml b/ansible/roles/trove-setup/tasks/minions.yml index a5b3d8d..929f893 100644 --- a/ansible/roles/trove-setup/tasks/minions.yml +++ b/ansible/roles/trove-setup/tasks/minions.yml @@ -4,6 +4,14 @@ # This is a workaround because the service module and the current # systemd version doesn't work well enough with template units. # +# Ansible runs the following to check the status of a systemd unit: +# +# systemctl show +# +# With template units, this command will say to Ansible that the unit +# "lorry-controller-minion@2" is running and enabled when only +# "lorry-controller-minion@1" is. That's why this workaround is needed. +# # It ALWAYS runs `systemctl enable` for all the minions to be # created, but it only reports that the status of the task has changed # when in the stderr output is the string "ln -s" (which means the @@ -11,7 +19,7 @@ - name: Enable as many MINIONS as specified in LORRY_CONTROLLER_MINIONS shell: systemctl enable lorry-controller-minion@{{ item }}.service with_sequence: count={{ LORRY_CONTROLLER_MINIONS }} - changed_when: "'ln -s' in minions_creation.stderr" + changed_when: "'Created symlink' in minions_creation.stderr" register: minions_creation - name: Start the all the MINIONS created (if any) -- cgit v1.2.1