On 05/15/14 17:25, Michael Peters wrote:
> On Wed, May 14, 2014 at 6:15 PM, Michael DeHaan <mich...@ansible.com> wrote:
>> The multiple play method is correct because the tasks would not be executed
>> for every host in the host loop.
> Well, then maybe I'm doing it wrong. How do you tell a play to just
> execute on one host in the host loop?
> Right now I run the "critical section" play with a serial of 1 and try
> to leave some indicator that it was run  (which is sometimes harder
> than others) and then the subsequent hosts skip the tasks in the place
> after they detect they weren't the first to try.
>
> So my approach is still wasteful since I know ahead of time that it's
> only ever going to run once but every host in the loop besides the
> first one has to detect the skip condition and skip every task in
> serial.
>
>> Pause is a bit of an exception.
> Does it have to be an exception? Can we expose that functionality to
> other tasks or plays? I'd be willing to help with coding something if
> you think it's worth it.
>

If a play acts on all hosts in 'somegroup' group, you can restrict a
task in that play to run only on the first host in the group by adding
the following conditional:

when: inventory_hostname == groups["somegroup"][0]

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/5374DE51.7070801%40yahoo.gr.
For more options, visit https://groups.google.com/d/optout.

Reply via email to