2012-06-05 15 views
7

Ich bin derzeit Lernen jinja2, und ich bin nicht sicher, wie man Variablen, um die richtige Art und Weise zu lösen:jinja2 verschachtelte Variablen

Hier sind meine Variablen in yaml:

--- 
hosts: 
    app201.acme.com: {eth0: {ip: 46.0.0.1, netmask: 255.255.255.255}} 
    graphite.acme.com: {eth0: {ip: 46.0.0.2, netmask: 255.255.255.255}, 
         eth0.1: {ip: 10.2.90.1, netmask: 255.255.255.255}} 

und hier die jinja2 Vorlage:

so sieht meine Ausgabe derzeit so aus, da ich nicht auf zweite Dimension von YAML-Hash zugreifen kann.

graphite.acme.com eth0.1

eth0

Antwort

20

Die Variable ist ein hostsdict. Der korrekte Zugriff auf Werte in dict ist die Verwendung des Operators [].

. operator wird verwendet, um auf das Attribut eines Objekts zuzugreifen.

+0

das hat den Trick gemacht. Danke! – damaex

+1

@ user1436955, herzlich willkommen. Sie können es als eine Antwort markieren, wenn Sie denken, dass dies das ist, was Sie gesucht haben. – Vikas

+0

Interessanterweise scheint die Schnittstelle ['ip'] nicht zu funktionieren, da die Schnittstelle als String behandelt wird, nicht als Diktat. –