On 05.10.2018 22:59, bglowacki wrote:
What I would like is to be able to specify 5 agents "at a time,"
meaning
that, when one of the 5 agents finishes with the patching play, it will
automatically start the play against another agent - always keeping the
maximum number of agents getting patched at any give time to be 5. That
way, if one agent is blocked for 8 hours, the remaining 4 slots can be
used
to cycle through the remaining build agents - and so on.
Is there some combination of the serial/forks options that would
provide me
this kind of capability - or am I asking for a new feature enhancement?
This is not possible with Ansible itself, you have strategy: free, but
it still wait for all hosts in the serial batch to finished before
moving to next set of hosts.
What you can do is use parallel or xargs to accomplish this.
This will run 5 ansible-playbook in parallel, each ansible-playbook is
limited to one host.
ansible-playbook playbook.yml --list-hosts | sed -e '1,/hosts/d' -e
's/^ *//' | xargs -P5 -n1 ansible-playbook playbook.yml --limit
This would only work well if you don't need to type in passwords.
--
Kai Stian Olstad
--
You received this message because you are subscribed to the Google Groups "Ansible
Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/53404d6bfac068727bc67910e13cf80e%40olstad.com.
For more options, visit https://groups.google.com/d/optout.