with_items when vars set_fact practices hostvars facts best ansible

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).