summaryrefslogtreecommitdiff
path: root/ansible/roles/trove-setup/tasks/minions.yml
diff options
context:
space:
mode:
Diffstat (limited to 'ansible/roles/trove-setup/tasks/minions.yml')
-rw-r--r--ansible/roles/trove-setup/tasks/minions.yml20
1 files changed, 20 insertions, 0 deletions
diff --git a/ansible/roles/trove-setup/tasks/minions.yml b/ansible/roles/trove-setup/tasks/minions.yml
new file mode 100644
index 0000000..a5b3d8d
--- /dev/null
+++ b/ansible/roles/trove-setup/tasks/minions.yml
@@ -0,0 +1,20 @@
+# Depends on:
+# - lorry-controller-setup.yml
+---
+# This is a workaround because the service module and the current
+# systemd version doesn't work well enough with template units.
+#
+# 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
+# unit has been enabled).
+- 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"
+ register: minions_creation
+
+- name: Start the all the MINIONS created (if any)
+ service: name=lorry-controller-minion@{{ item.item }} state=restarted
+ with_items: minions_creation.results
+ when: item|changed