Ansible with_subelements
This is really bad example of how subelements
lookup works. (And has old, unsupported, syntax as well).
Look at this one:
---
- hosts: localhost
gather_facts: no
vars:
families:
- surname: Smith
children:
- name: Mike
age: 4
- name: Kate
age: 7
- surname: Sanders
children:
- name: Pete
age: 12
- name: Sara
age: 17
tasks:
- name: List children
debug:
msg: "Family={{ item.0.surname }} Child={{ item.1.name }} Age={{ item.1.age }}"
with_subelements:
- "{{ families }}"
- children
Task List children is like a nested loop over families
list (outer loop) and over children
subelement in each family (inner loop).
So you should provide a list of dicts as first argument to subelements
and name of subelement you want to iterate inside each outer item.
This way item.0
(family in my example) is an outer item and item.1
(child in my example) is an inner item.
In Ansible docs example subelements
is used to loop over users (outer) and add several public keys (inner).