diff --git a/HowtoAnsible.md b/HowtoAnsible.md index 4c023d8e..677ffc93 100644 --- a/HowtoAnsible.md +++ b/HowtoAnsible.md @@ -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… +* 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 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.