2017-01-13 2 views
4

Hier ist mein Problem, ich brauche einen Diktatwert von Schlüssel. Aber der Schlüssel ist auch ein Var. Zum Beispiel hatte ich eine ansible Rolle.erhalten dict Wert von variablen Schlüssel in ansible

In Vars/main.yml, I definiert Vars wie folgt:

--- 
location: "USA" 
source:  { 
      "China": "/net/server1/patha", 
      "USA": "/net/server2/pathb", 
      "Japan": "/net/server3/pathc" 
      } 

Also meiner Aufgaben: Aufgaben/main.yml. Wie bekomme ich "/ net/server2/pathb" mit den vars. Ich habe unten in Aufgaben versucht, alles hat nicht funktioniert.

-shell: "perl run.perl {{ source.location }}/script.pl"

-shell: "perl run.perl {{ source.{{ location }} }}/script.pl"

Dies kann eine einfache Frage sein. Aber ich habe viele Beiträge lange gesucht und kann immer noch keine richtige Antwort bekommen. Also bitte hilf und vielen Dank.

Antwort

9

Die Antwort ist {{ source[location] }}.

+0

Es ist in der Tat einfach. Danke für Ihre Hilfe! – PageNotFound

+1

Hier ist eine generische Art der Suche nach 'vars/main.yml', die nur Schlüssel-Wert-Paare sind:' - name: echo_vars \ Befehl: echo "{{vars [item]}}" \ with_items: "{{ vars}} "\ register: output_echo_vars \ - debug: var = output_echo_vars.stdout" – mikequentel

+0

Der Zugriff auf Variablen über 'vars' ist ein kniffliges Geschäft - sie werden in diesem Fall nicht durch Templating Engine verarbeitet. –

Verwandte Themen