jinja2 imbriquée variables
Je suis actuellement en apprentissage jinja2 et je ne suis pas certain de la façon d'aborder les variables de la façon correcte:
Voici mes variables en 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}}
et ici le jinja2 modèle:
{{ fqdn }}
{% for interface in hosts[fqdn] %}
{{ interface }}
{{ hosts[fqdn].interface.ip }} << doesn't work
{{ hosts[fqdn].{{ interface }}.ip }} << doesn't work
{{ interface.ip }} << doesn't work
{% endfor %}
donc actuellement ma sortie ressemble à ceci car je ne peux pas accéder à la deuxième dimension de yaml de hachage.
graphite.acme.com
eth0.1
eth0
OriginalL'auteur damaex | 2012-06-05
Vous devez vous connecter pour publier un commentaire.
La variable
hosts
est undict
. La façon correcte pour accéder à valeurs dansdict
est d'utiliser[]
opérateur..
opérateur est utilisé pour accéder à un attribut d'un objet.la plupart de bienvenue. Vous pouvez le marquer comme réponse si vous pensez que c'est ce que vous cherchez.
Il est intéressant de noter interface['ip'] ne semble pas fonctionner, je suppose que depuis l'interface est traité comme une chaîne, pas dict.
merci de remarquer. Il a été copier collé de l'OP de l'extrait de code et j'ai oublié de l'enlever.
OriginalL'auteur Vikas