Ansible: quand : Inventory_hostname dans {{ groups['group'] }} ne fonctionne pas avec l'inventaire dynamique

Créé le 24 juin 2015  ·  3Commentaires  ·  Source: ansible/ansible

J'ai créé https://github.com/eparis/ansible-inventory-bug pour montrer exactement ce que je veux dire avec un reproducteur propre que tout le monde peut exécuter localement. Il a à la fois un inventaire « dynamique » et un inventaire statique.

(Pour « dynamique », c'est vraiment juste du chat dans certains json, mais cela montre clairement le problème)

Avec un fichier d'inventaire statique, when: inventory_hostname in {{ groups['group'] }} fonctionne très bien. Mais avec l'inventaire dynamique, il échoue avec ce qui ressemble à un gâchis de localisation python/gestion de chaîne ...

affects_2.0 affects_2.3

Commentaire le plus utile

Alors j'ai fait beaucoup d'expérimentations et j'ai trouvé

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

Échoue:
when: inventory_hostname in {{ groups['group'] }}

C'est donc l'ensemble supplémentaire de {{ }} qui pose problème. Bien que je ne sache pas pourquoi cela fonctionne pour le statique mais pas pour le dynamique.

Tous les 3 commentaires

Alors j'ai fait beaucoup d'expérimentations et j'ai trouvé

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

Échoue:
when: inventory_hostname in {{ groups['group'] }}

C'est donc l'ensemble supplémentaire de {{ }} qui pose problème. Bien que je ne sache pas pourquoi cela fonctionne pour le statique mais pas pour le dynamique.

Vous ne devriez pas utiliser {{ }} dans quand (nous devrions en fait en faire une erreur), la raison pour laquelle le statique/dynamique fonctionne un peu différemment ici semble être due au type d'objet renvoyé à la fin, liste vs chaîne unicode .

fermeture comme ci-dessus

Cette page vous a été utile?
0 / 5 - 0 notes