From the logs this is a plausible theory. When the play starts a large list is created with all the hosts on which the play should happen based on the order of hosts. Then the playbook goes through each of the tasks/includes based on the cirterion and runs them.
In all the plays where 'run_once' is enabled, the playbook attempts it in the first machine that is in the list (created above) and skips if it doesnt match the criterion.
Changing the order will purely just change the order of the list and the key tasks which are run_once are obviously to be run on the server nodes (neutron in this case). Changing the order should have the most minimal impact here.
From the logs this is a plausible theory. When the play starts a large list is created with all the hosts on which the play should happen based on the order of hosts. Then the playbook goes through each of the tasks/includes based on the cirterion and runs them.
delegate_to is broken in ansible <2.0 per these bugs. https:/ /github. com/ansible/ ansible/ issues/ 14684 && https:/ /github. com/ansible/ ansible/ pull/15024.
In all the plays where 'run_once' is enabled, the playbook attempts it in the first machine that is in the list (created above) and skips if it doesnt match the criterion.
eg: Neutron endpoint creation fails. http:// paste.openstack .org/show/ 492636/
Followed by creating the config drives which works correctly as they are not 'run_once'. http:// paste.openstack .org/show/ 492637/
Changing the order will purely just change the order of the list and the key tasks which are run_once are obviously to be run on the server nodes (neutron in this case). Changing the order should have the most minimal impact here.