2016-05-17 16 views
1

Ich versuche, einige verschachtelte Variablen in eine Datei mit Templating in Ansible zu rendern.Ansible - Rendering geschachtelte Variablen in einer Vorlage

Die regierende Textbuch wie folgt aussieht:

--- 

- hosts: tag_Cluster_restore 
    vars: 
    pg_password: 
     qa: blah 
     staging: blahblah 
     production: blahblahblah 
    roles: 
    - role: psql_helper 

Der Einfachheit halber meine Rolle Aufgaben/main.yml wie folgt aussieht:

--- 
- debug: msg="Password is {{ pg_password.[env] }}" 

Und ich möchte die env Variable auf dem Befehl angeben Linie wie folgt:

ansible-playbook playbook.yml -e "env=qa" 

... und haben es die qa pa render S-Schwert. Aber im Moment bekomme ich fatal: [1.1.1.1]: FAILED! => {"failed": true, "msg": "ERROR! template error while templating string: expected name or number"}

Offensichtlich habe ich irgendwo die Syntax falsch, oder ich etwas falsch angeben. Kann jemand helfen?

Beachten Sie, dass ich nicht über die Variable Schleife - die meisten Sachen, die ich gegoogled habe weist darauf hin, wie dies zu tun, würde ich "Drilldown" auf die verschachtelte Variable, die ich brauche, wenn dies in ist Tatsache möglich ...

Dank

Antwort

1

Ihre Debug-Aufgabe sollte nicht die . beim Aufruf:

- debug: msg="Password is {{ pg_password[env] }}" 

Dies bedeutet einfach, Sie den Schlüssel env aus dem Wörterbuchbekommen