Ansible: cuando: nombre_host_inventario en {{grupos ['grupo']}} no funciona con inventario dinámico

Creado en 24 jun. 2015  ·  3Comentarios  ·  Fuente: ansible/ansible

Creé https://github.com/eparis/ansible-inventory-bug para mostrar exactamente lo que quiero decir con un reproductor limpio que cualquiera puede ejecutar localmente. Tiene un inventario 'dinámico' y un inventario estático.

(Para 'dinámico' realmente es solo captura de algunos json, pero muestra el problema claramente)

Con un archivo de inventario estático when: inventory_hostname in {{ groups['group'] }} funciona bien. Pero con el inventario dinámico falla con lo que parece un lío de localización / manejo de cadenas de Python ...

affects_2.0 affects_2.3

Comentario más útil

Así que experimenté mucho y encontré

Obras:
when: inventory_hostname in groups['group']

Falla:
when: inventory_hostname in {{ groups['group'] }}

Por tanto, es el conjunto adicional de {{}} el que causa el problema. Aunque no sé por qué funciona para estática pero no para dinámica.

Todos 3 comentarios

Así que experimenté mucho y encontré

Obras:
when: inventory_hostname in groups['group']

Falla:
when: inventory_hostname in {{ groups['group'] }}

Por tanto, es el conjunto adicional de {{}} el que causa el problema. Aunque no sé por qué funciona para estática pero no para dinámica.

No debe usar {{}} en cuando (en realidad deberíamos hacer que esto sea un error), la razón por la que el funcionamiento estático / dinámico aquí parece ser debido al tipo de objeto devuelto al final, lista frente a cadena unicode .

cerrando como arriba

¿Fue útil esta página
0 / 5 - 0 calificaciones