"Nope, to this one.  If you want to run something on the current machine,
where ansible is running, you need to write a module, which would reside in
the library. Ansible doesn't look in $PWD for modules, like it does for
tasks."

I think you're confused about the question.  The question was about how to
run one task, in the middle of a series of multi-host tasks, on just one
host, and then resume running steps on a wide array of hosts.

The OP should not be seeking to write a module to solve the above.





On Wed, May 14, 2014 at 6:23 PM, Adam Heath <a...@brainfood.com> wrote:

> Nope, to this one.  If you want to run something on the current machine,
> where ansible is running, you need to write a module, which would reside in
> the library. Ansible doesn't look in $PWD for modules, like it does for
> tasks.
>
> If you are running a module on the local machine, then you can do things
> like pause does, where it only runs once.
>
>
> On 05/14/2014 05:15 PM, Michael DeHaan wrote:
>
>> The multiple play method is correct because the tasks would not be
>> executed for every host in the host loop.
>>
>> Pause is a bit of an exception.
>>
>> (Sidenote, it appears Adam is replying to another question above I think?)
>>
>>
>>
>> On Wed, May 14, 2014 at 5:21 PM, Adam Heath <a...@brainfood.com <mailto:
>> a...@brainfood.com>> wrote:
>>
>>     By default, ansible looks for tasks in $PWD.  tasks are sent to
>>     the remote host, and don't run local.
>>
>>     If you create ansible.cfg in $PWD, and override defaults.library,
>>     then you can have local modules; these run on the local machine.
>>
>>     The following works when ansible is installed thru a package
>>     manager(I use debian):
>>
>>     cat $work_tree/ansible.cfg
>>     ==
>>     [defaults]
>>
>>     library =
>>     /home/adam/code/$shared_ansible_repo/library:/usr/share/ansible
>>     roles_path = /home/adam/code/$shared_ansible_repo/roles
>>     ==
>>
>>
>>
>>     On 05/14/2014 04:07 PM, Michael Peters wrote:
>>
>>         I feel like I'm missing something, but I couldn't find it in the
>>         documentation. Please feel free to RTFM me.
>>
>>         I was just playing around with the pause module in a playbook and
>>         noticed that it only ran on a single host no matter how many hosts
>>         were being executed in the play. That makes sense because
>>         pausing on
>>         multiple machines would just be silly.
>>
>>         The real question is how do I do that explicitly in my own
>>         tasks? I
>>         have a lot of places in playbooks where I have data that needs
>>         to be
>>         inserted on some centralized storage (like a database or files
>>         on an
>>         NFS server, etc). At best this data is pointless to insert/update
>>         multiple times. And most of the time it's difficult to make
>>         sure it's
>>         done in a idempotent way (think ALTER statements in SQL
>>         migrations).
>>
>>         Currently I deal with this by breaking up my playbook into
>>         multiple
>>         plays where most of the tasks are in parallel, then another
>>         play is
>>         done in serial with just 1 host at a time with some pre-condition
>>         checks to see if it needs to be run and skipping it when it
>>         doesn't.
>>         This has the effect of the first host through the serial
>>         section does
>>         the work and every other host gets a turn to waste cycles checking
>>         that it actually happened. Then after the "critical section"
>>         is done
>>         the rest of the tasks are done in a parallel play.
>>
>>         If I could just explicitly label a task as "just run this on
>>         the first
>>         server in the group" like the pause module does I'd be really
>>         happy.
>>
>>
>>     --     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
>>     <mailto:ansible-project%2bunsubscr...@googlegroups.com>.
>>
>>     To post to this group, send email to
>>     ansible-project@googlegroups.com
>>     <mailto:ansible-project@googlegroups.com>.
>>
>>     To view this discussion on the web visit
>>     https://groups.google.com/d/msgid/ansible-project/
>> 5373DE76.9090803%40brainfood.com.
>>
>>
>>     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 ansible-project+unsubscr...@googlegroups.com <mailto:
>> ansible-project+unsubscr...@googlegroups.com>.
>> To post to this group, send email to ansible-project@googlegroups.com<mailto:
>> ansible-project@googlegroups.com>.
>> To view this discussion on the web visit https://groups.google.com/d/
>> msgid/ansible-project/CA%2BnsWgzV9WFUC3v7fz0L6iYpR58T_
>> edMNCO_dphKVLv0TNXX1A%40mail.gmail.com <https://groups.google.com/d/
>> msgid/ansible-project/CA%2BnsWgzV9WFUC3v7fz0L6iYpR58T_
>> edMNCO_dphKVLv0TNXX1A%40mail.gmail.com?utm_medium=email&utm_source=footer
>> >.
>>
>> 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 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/5373ECF2.9070405%40brainfood.com.
>
> 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 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/CA%2BnsWgyPV7iJ9SQXaQ9k8fd8_8CORwnmd%3D6iU7L8FvM-0NU4Rw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to