Then I cannot figure out what am I doing wrong, can you please assist?

main.yml:

---
- hosts: windows_servers
  ignore_errors: true
  gather_facts: false

  tasks:
    - name: inner playbook
      include: update-windows.yml
      until: 'searched_inner.found_update_count > 0' 
      retries: 10
    - debug: var=searched_inner

update-windows.yml:

- name: search wu
  win_updates:
    category_names:
      - CriticalUpdates
      - SecurityUpdates
      - UpdateRollups
    state:
      - searched
    log_path:
      - c:/temp/ansible_wu.txt
  register: searched

- set_fact:
    searched_inner: "{{ searched }}"

and when I execute it, no until loop is actually happening:

[root@ansiblecm more_tires]# ansible-playbook main.yml --limit try

PLAY [windows_servers] 
*********************************************************

TASK [search wu] 
***************************************************************
 [WARNING]: Module invocation had junk after the JSON data:

changed: [try]

TASK [set_fact] 
****************************************************************
ok: [try]

TASK [debug] 
*******************************************************************
ok: [try] => {
    "searched_inner": {
        "changed": true, 
*        "found_update_count": 189, *
        "installed_update_count": 0, 
        "reboot_required": false, 
        "updates": {
            "0025cccd-6122-483a-a646-dd3ea3ff861f": {
                "id": "0025cccd-6122-483a-a646-dd3ea3ff861f", 
                "installed": false, 
                "kb": [
                    "3179574"
                ], 
                "title": "Update for Windows Server 2012 R2 (KB3179574)"
            }, 
...
...
...
PLAY RECAP 
*********************************************************************
try                        : ok=3    changed=1    unreachable=0    failed=0 
  

Playbook run took 0 days, 0 hours, 2 minutes, 4 seconds


Why until is not triggered here by until: 
'searched_inner.found_update_count > 0'


On Friday, January 13, 2017 at 12:26:29 AM UTC+2, Matt Davis wrote:
>
> That post is really old- include looping has worked for a long time...
>
> On Thursday, January 12, 2017 at 1:28:05 AM UTC-8, Danny Rehelis wrote:
>>
>> Hi Matt,
>>
>> Dag's solution was something I really hoped to work but then I found this 
>> post by Brian Coca - 
>> https://groups.google.com/forum/#!topic/ansible-project/xGGe6WADtH0
>>
>> Seems like this is not possible because "Include is not a module, more 
>> like a preprocessing macro."
>>
>> On Thu, Jan 12, 2017 at 4:02 AM, Matt Davis <mda...@ansible.com 
>> <javascript:>> wrote:
>>
>>> 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, aut...@gmail.com 
>>> <javascript:> 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 ansible-proje...@googlegroups.com <javascript:>.
>>> To post to this group, send email to ansible...@googlegroups.com 
>>> <javascript:>.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/ansible-project/2ebf7ecd-8da0-4b1d-99ba-f886721a9d2c%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/ansible-project/2ebf7ecd-8da0-4b1d-99ba-f886721a9d2c%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> -- 
>> Danny Rehelis - autogun [AT] gmail.com
>>
>  

-- 
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/90ae5a90-fdcd-4a20-8c59-c562552c332c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to