Ansible: Wann: Inventory_Hostname in {{ groups['group'] }} funktioniert nicht mit dynamischem Inventar

Erstellt am 24. Juni 2015  ·  3Kommentare  ·  Quelle: ansible/ansible

Ich habe https://github.com/eparis/ansible-inventory-bug erstellt, um genau zu zeigen, was ich mit einem sauberen Reproduzierer meine, den jeder lokal ausführen kann. Es hat sowohl ein "dynamisches" Inventar als auch ein statisches Inventar.

(Für 'dynamisch' ist es wirklich nur das Einfangen von Json, aber es zeigt das Problem deutlich)

Mit einer statischen Inventardatei funktioniert when: inventory_hostname in {{ groups['group'] }} einwandfrei. Aber mit dynamischem Inventar schlägt es fehl, was wie ein Durcheinander bei der Python-Lokalisierung / String-Behandlung aussieht ...

affects_2.0 affects_2.3

Hilfreichster Kommentar

Also einfach viel experimentiert und gefunden

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

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

Es ist also der zusätzliche Satz von {{ }}, der das Problem verursacht. Obwohl ich nicht weiß, warum es für statisch funktioniert, aber nicht für dynamisch.

Alle 3 Kommentare

Also einfach viel experimentiert und gefunden

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

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

Es ist also der zusätzliche Satz von {{ }}, der das Problem verursacht. Obwohl ich nicht weiß, warum es für statisch funktioniert, aber nicht für dynamisch.

Sie sollten {{}} nicht verwenden, wenn (wir sollten dies eigentlich zu einem Fehler machen), der Grund dafür, dass die statische/dynamische Funktion hier etwas anders funktioniert, scheint der am Ende zurückgegebene Objekttyp zu sein, Liste vs. Unicode-String .

Schließung wie oben

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen