22
0
Fork 0

Jinja : boucler sur un attribut d'un dictionnaire

This commit is contained in:
vlaborie 2017-11-16 10:20:44 +01:00
parent a0194be83a
commit e88619946b
1 changed files with 28 additions and 0 deletions

View File

@ -746,6 +746,34 @@ c: a | default([1, 2], true)
C'est le second paramètre (`true`) qui permet à `default()` d'agir lorsque la variable `a` n'est pas seulement nulle ou indéfinie, mais aussi en cas de chaîne vide, tableau vide… C'est le second paramètre (`true`) qui permet à `default()` d'agir lorsque la variable `a` n'est pas seulement nulle ou indéfinie, mais aussi en cas de chaîne vide, tableau vide…
* boucler sur un attribut d'un dictionnaire
On veut par exemple créer les groupes des utilisateurs du dictionnaire suivant :
~~~
users:
user1:
name: user1
groups: group1
user2:
name: user2
groups: group2
user3:
name: user3
groups: group1
~~~
On va donc faire une boucle avec la liste des groupes définit dans l'attribut "groups" :
~~~
- name: "Create secondary groups"
group:
name: "{{ item }}"
with_items: "{{ users.values() | map(attribute='groups') | list | unique }}"
~~~
## Erreurs ## Erreurs
Les messages d'erreurs ne sont pas le point fort d'Ansible. Il n'est pas toujours clair de savoir si c'est un soucis de syntaxe YAML, un problème de sémantique d'Ansible ou une erreur dans l'utilisation de Jinja2. De plus, Ansible tente de faire des recommandations, mais elles sont des fois plus déroutantes qu'éclairantes. En voici quelques unes que nous avons rencontrées. Les messages d'erreurs ne sont pas le point fort d'Ansible. Il n'est pas toujours clair de savoir si c'est un soucis de syntaxe YAML, un problème de sémantique d'Ansible ou une erreur dans l'utilisation de Jinja2. De plus, Ansible tente de faire des recommandations, mais elles sont des fois plus déroutantes qu'éclairantes. En voici quelques unes que nous avons rencontrées.