risposta di Ryler è buono in questo caso specifico, ma mi sono imbattuto in problemi con altre varianti con il modulo modello.
[example]
127.0.0.1 timezone="Europe/Amsterdam" locales='["en_US", "nl_NL"]'
È il suo esempio originale e funziona bene.
Le seguenti varianti funzionano con il modello. Fondamentalmente se si tratta di una stringa, è necessario ricordare di utilizzare le virgolette interne o l'intera struttura viene analizzata come una singola stringa. Se sono solo numeri o "Vero" o "Falso" (non "sì"), allora stai bene. In questa variante non potrei farlo funzionare con template se avesse citazioni esterne.
Non ho eseguito un controllo completo dei casi di uso interno che fanno e non si rompono se non il modulo modello.
Sto usando 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 Non solo non è lo stesso codice della domanda, ma è anche la soluzione esatta che l'OP stava cercando. L'hai provato? Ryler ha fatto, così ho fatto io: e funziona. Questa dovrebbe essere la risposta accettata e non downvoted. – udondan
Sì, puoi anche confermare che questo funziona. Questo è utile per l'utilizzo con una dichiarazione "with_items", ad esempio. Puoi persino creare oggetti simili a dict come questo. Lo uso per definire gli utenti e le password di autenticazione nginx in un file di inventario: nginx_auth = '[{"utente": "utente1", "pass": "pass1"}, {"utente": "utente2", "pass ":" pass2 "}] ' –
È la soluzione più accurata possibile per i file ini?Cosa succede se hai 20+ elementi e 5 host con cui configurarlo? Sarei felice di saperlo ma questo funziona per ora. – JohnnyQ