Thanks, that actually helps a lot. Although, it does litter all my tasks in the "critical section" play with that conditional and makes existing conditionals more complex.
It would still be cleaner to have an option on the play itself and/or individual tasks. I know there's some hesitation to add new keywords (which is good imo) but this seems common enough for lots of update/deployment scenarios. I'd be willing to code something like that if there's any interest in seeing it On Thu, May 15, 2014 at 11:33 AM, 'Petros Moisiadis' via Ansible Project <[email protected]> wrote: > On 05/15/14 17:25, Michael Peters wrote: >> On Wed, May 14, 2014 at 6:15 PM, Michael DeHaan <[email protected]> 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 [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/5374DE51.7070801%40yahoo.gr. > For more options, visit https://groups.google.com/d/optout. -- 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/CAJQqANfVKyF2bQbkBJg00mFrZnistuUyGUDCjkedh84Kkk4nLg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
