when - Ansible con_subelementos
ansible set_fact (1)
Me está costando entender la lógica de ansible con la sintaxis de sub-elementos, ¿qué hace exactamente con_subelementos? Eché un vistazo a la documentación de ansible en with_subelements aquí http://docs.ansible.com/ansible/playbooks_loops.html#looping-over-subelements y no fue de mucha ayuda. También vi un libro de jugadas con el ejemplo with_subelements en un blog
---
- hosts: cent
vars:
users:
- name: jagadish
comments:
- ''Jagadish is Good''
- name: srini
comments:
- ''Srini is Bad''
tasks:
- name: User Creation
shell: useradd -c "{{ item.1 }}" "{{ item.0.name }}"
with_subelements:
- users
- comments
¿A qué se refieren item.1 y item.0?
Este es un ejemplo realmente malo de cómo funcionan los subelements
búsqueda. (Y tiene sintaxis antigua, no compatible, también).
Mira este:
---
- 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
Los niños de la lista de tareas es como un bucle anidado sobre la lista de families
(bucle externo) y sobre el subelemento de children
en cada familia (bucle interno).
Por lo tanto, debe proporcionar una lista de dictados como primer argumento de los subelements
y el nombre del subelemento que desea iterar dentro de cada elemento externo.
De esta manera, item.0
(familia en mi ejemplo) es un item externo y item.1
(child en mi ejemplo) es un item interno.
En Ansible docs, los subelements
ejemplo se utilizan para hacer un bucle sobre los usuarios (externo) y agregar varias claves públicas (interno).