diff options
Diffstat (limited to '3 Resources/ansible/loop-results-prior-loop.md')
-rw-r--r-- | 3 Resources/ansible/loop-results-prior-loop.md | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/3 Resources/ansible/loop-results-prior-loop.md b/3 Resources/ansible/loop-results-prior-loop.md new file mode 100644 index 0000000..cbd50a2 --- /dev/null +++ b/3 Resources/ansible/loop-results-prior-loop.md @@ -0,0 +1,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 }}" +```
\ No newline at end of file |