Ryler Antwort aufspalten kann in diesem speziellen Fall gut, aber ich lief in Probleme mit den anderen Varianten mit Vorlagenmodul.
[example]
127.0.0.1 timezone="Europe/Amsterdam" locales='["en_US", "nl_NL"]'
Ist sein Originalbeispiel und funktioniert gut.
Die folgenden Variationen funktionieren mit Vorlage. Wenn Sie eine Zeichenkette verwenden, müssen Sie grundsätzlich daran denken, die internen doppelten Anführungszeichen zu verwenden, oder die gesamte Struktur wird als einzelne Zeichenkette analysiert. Wenn es nur Zahlen oder "True" oder "False" (nicht "Ja") ist, dann geht es Ihnen gut. In dieser Variante konnte ich es nicht mit Vorlage arbeiten, wenn es externe Anführungszeichen hatte.
Ich habe keine umfassende Überprüfung der internen Anwendungsfälle, die sie tun und nicht andere als das Vorlagenmodul zu brechen.
Ich benutze Ansible 2.2.1.
[example:vars]
# these work
myvar1=["foo", "bar"]
myvar2=[1,2]
myvar3=[True,False]
# These fail, they get interpreted as a single string.
myvar4=[yes, no]
myvar5=[foo,bar]
myvar6='["foo", "bar"]'
@ryanyuyu Es ist nicht nur nicht der gleiche Code wie in der Frage, es ist auch die genaue Lösung, die das OP gesucht hat. Hast du es getestet? Ryler tat, ich auch: Und es funktioniert. Dies sollte die akzeptierte Antwort sein und nicht abgelehnt werden. – udondan
Ja, kann auch bestätigen, dass das funktioniert. Dies ist zum Beispiel für die Verwendung mit einer "with_items" -Anweisung gut. Sie können sogar dict-ähnliche Objekte wie diese erstellen. Ich benutze dies für die Definition von Nginx Authentication Benutzern und Passwörtern in einer Inventardatei: nginx_auth = '[{"user": "user1", "pass": "pass1"}, {"user": "user2", "pass ":" pass2 "}] ' –
Ist das die sauberste Lösung für Ini-Dateien?Was ist, wenn Sie 20 + Items und 5 Hosts haben, um es zu konfigurieren? Würde mich freuen zu wissen, aber das funktioniert für jetzt. – JohnnyQ