blob: cbd50a27acaed40857426ef2b9a5b013ef04f4d7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
```YAML
- name: First loop
loop: {{ blaat }}
register: loooped
...
- name: Second loop
loop: {{ loooped.results }}
when: item.skipped is not defined
```
this loops over results of prior loop only but does not process any skipped results.
In case the results array contains another array that we want to loop over, for example when we did a shell command in a loop we can use extract:
```
- name: Print magic
ansible.builtin.debug:
msg: "{{ ['stdout_lines'] | map('extract', item) }}"
loop: "{{ magic.results }}"
```
A cool example of this in practice:
```
- name: Print blockpull command
ansible.builtin.debug:
msg: "virsh blockpull {{ ['stdout_lines'] | map('extract', item) | list | flatten | join(' ') }}"
loop: "{{ domain_and_disk_paths.results }}"
loop_control:
label: "{{ inventory_hostname }}"
```
|