I am running the below code in a playbook which iterates over many hosts. This script writes the value of ver.stdout to a file. I am seeing issue when I run in in parallel. It is overwriting. It works good when serial:1 but it consumes long time since we have large number of hosts.
Any help to run in parallel and improve the time consumption?
Since you are using local_action, it will execute on the ansible controller instead of remote host
local_action is an alternative way of doing delegate_to: localhost. These actions will be executed on local machine (Ansible control host)
I don’t see how it would behave differently if you use serial:1 or 5 which is the default.
I am running the below code in a playbook which iterates over many hosts.
This script writes the value of ver.stdout to a file. I am seeing issue
when I run in in parallel. It is overwriting. It works good when serial:1
but it consumes long time since we have large number of hosts.
Any help to run in parallel and improve the time consumption?
It's not possible to write to the same file in parallel so you need to serialize it.
Instead of doing it on the play, do it on the task.
Loop through all host in the play with ansible_play_hosts and use hostvars to get the variable and set run_once as true.
So something like this should work.