The solution Dag posted is what I've always done, and it works great for 
me. I've been advocating for block loop support (as a cleaner solution to 
exactly this issue) since before it shipped, but I don't have the bandwidth 
to implement myself right now, and around here it's kinda "put up or shut 
up". ;) If it doesn't work for you, let us know why and maybe we can get it 
figured out.

I really wouldn't recommend the "run the playbook in a loop" thing- you 
lose a lot of output fidelity and error handling, and it's really just a 
way more expensive way to do what Dag suggested.

I actually originally wrote win_updates with a wrapper action that would 
handle the reboots automatically, but for various reasons (that I can't 
recall) decided to abandon the wrapper before I shipped it...

-Matt

On Monday, January 2, 2017 at 7:39:48 AM UTC-8, [email protected] wrote:
>
> Hi,
>
> I'm using win_updates module to carry out windows patching and it works 
> pretty good.
> Sometime, updates have dependencies and multiple playbook execution 
> required.
>
> I was thinking, if possible, to loop the playbook until 
> "found_update_count > 0" without the need of running ansible-playbook 
> multiple time after each finish.
>
> My playbook looks like this:
>
> - hosts: win_server_1
>   ignore_errors: true
>   gather_facts: true
>
>   tasks:
>     - name: search wu
>       win_updates:
>         category_names:
>           - UpdateRollups
>           - CriticalUpdates
>           - SecurityUpdates
>         state:
>           - searched
>         log_path:
>           - c:/temp/ansible_wu.txt
>       register: searched
>     
>     - name: install wu
>       win_updates:
>         category_names:
>           - UpdateRollups
>           - CriticalUpdates
>           - SecurityUpdates
>         state:
>           - installed
>         log_path:
>           - c:/temp/ansible_wu.txt
>       register: installed
>       when: searched.found_update_count > 0
>     
>     - name: reboot
>       win_reboot:
>         pre_reboot_delay_sec: 0
>         test_command: whoami
>         reboot_timeout_sec: 300
>       when: installed.reboot_required = 'true'
>       register: reboot
>
>
> I cant figure out how to put this in playbook by myself, seeking for some 
> guidance.
>
> Thanks,
>
>

-- 
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/2ebf7ecd-8da0-4b1d-99ba-f886721a9d2c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to