bifrost: Serialize localhost actions during final host deployment 51/22651/1
authorMarkos Chandras <mchandras@suse.de>
Mon, 3 Oct 2016 12:41:38 +0000 (13:41 +0100)
committerMarkos Chandras <mchandras@suse.de>
Mon, 3 Oct 2016 12:41:38 +0000 (13:41 +0100)
Several tasks in the final playbooks run locally and there is a chance
to encounter race conditions when multiple tasks run in parallel
and all access or modify the same local files. We fix this by splitting
the final steps into multiple plays and serializing those that run
locally.

Change-Id: I38c3465d9c4714d9db772f9ff9e32ec1d4a91db8
Signed-off-by: Markos Chandras <mchandras@suse.de>
prototypes/bifrost/playbooks/test-bifrost-infracloud.yaml

index b4dffdc..d650f10 100644 (file)
   roles:
     - role: ironic-enroll-dynamic
     - { role: ironic-inspect-node, when: inspect_nodes | default('false') | bool == true }
+- hosts: baremetal
+  name: "Create configuration drive files"
+  become: no
+  connection: local
+  roles:
+    - role: bifrost-configdrives-dynamic
 - hosts: baremetal
   vars:
     multinode_testing: "{{ inventory_dhcp | bool == true }}"
-  name: "Create configuration drive files and deploy machines."
+  name: "Deploy machines."
   become: no
   connection: local
+  serial: 1
   roles:
-    - role: bifrost-configdrives-dynamic
     - role: bifrost-deploy-nodes-dynamic
     - role: bifrost-prepare-for-test-dynamic
-      serial: 1