tech:notes_ansible_map_select_reject
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| tech:notes_ansible_map_select_reject [2025/04/27 17:13] – Jean-Baptiste | tech:notes_ansible_map_select_reject [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # Notes Ansible map select reject | ||
| + | |||
| + | Map reduce filter avec Ansible | ||
| + | |||
| + | Voir : | ||
| + | * `selectattr` | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | Liste des filtres Jinja2 | ||
| + | * https:// | ||
| + | |||
| + | Développer ses propres filtres : | ||
| + | * https:// | ||
| + | |||
| + | ## select (filter) | ||
| + | |||
| + | `select` l' | ||
| + | |||
| + | Exemple : Enlever les éléments vides d'une liste | ||
| + | ~~~yaml | ||
| + | # | ||
| + | liste: {{ liste1 | difference([`]) }} | ||
| + | |||
| + | # ou | ||
| + | liste: {{ liste1 | select | list }} | ||
| + | |||
| + | # Ce qui est équivalent à | ||
| + | liste: {{ liste1 | select(' | ||
| + | |||
| + | # et à | ||
| + | liste: {{ liste1 | reject(' | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | Faire un grep | ||
| + | ~~~yaml | ||
| + | - name: assert ansible-lint duplicate dict key | ||
| + | assert: | ||
| + | that: | ||
| + | - ansible_lint_ref.rc != 1 | ||
| + | msg: "{{ ansible_lint_ref.stderr_lines | select(' | ||
| + | # Show only lines with " | ||
| + | ~~~ | ||
| + | |||
| + | Nettoyer une liste des éléments undef | ||
| + | ~~~yaml | ||
| + | msg: '{{ foo | select(" | ||
| + | ~~~ | ||
| + | |||
| + | Voir aussi | ||
| + | * `select(' | ||
| + | * selectattr, rejectattr | ||
| + | |||
| + | |||
| + | ## map | ||
| + | |||
| + | Émuler `any` et `all` | ||
| + | |||
| + | ~~~yaml | ||
| + | - hosts: localhost | ||
| + | tasks: | ||
| + | - assert: | ||
| + | that: | ||
| + | - mixed | any | ||
| + | - not (mixed | all) | ||
| + | - all_true | any | ||
| + | - all_true | all | ||
| + | - not (all_false | any) | ||
| + | - not (all_false | all) | ||
| + | vars: | ||
| + | | ||
| + | - false | ||
| + | - true | ||
| + | - false | ||
| + | | ||
| + | - true | ||
| + | - true | ||
| + | - true | ||
| + | | ||
| + | - false | ||
| + | - false | ||
| + | - false | ||
| + | ~~~ | ||
| + | |||
| + | Sur ma version d' | ||
| + | Solution : | ||
| + | ~~~yaml | ||
| + | vars: | ||
| + | any: my_list | map(' | ||
| + | all: my_list | map(' | ||
| + | ~~~ | ||
| + | |||
| + | Faire un sed | ||
| + | ~~~yaml | ||
| + | - name: Copy a glob of files based on a list of groups | ||
| + | copy: | ||
| + | src: "{{ item }}" | ||
| + | dest: "/ | ||
| + | loop: '{{ q(" | ||
| + | vars: | ||
| + | globlist: '{{ mygroups | map(" | ||
| + | ~~~ | ||
| + | |||
| + | ### map attribute | ||
| + | |||
| + | ~~~yaml | ||
| + | # La ligne ci-dessous : | ||
| + | mounts: "{{ ansible_mounts | map(attribute=' | ||
| + | # équivaut à : | ||
| + | mounts: "{{ ansible_mounts | json_query(' | ||
| + | ~~~ | ||
| + | |||
| + | ## Autres | ||
| + | |||
| + | A tester | ||
| + | ~~~yaml | ||
| + | - name: Convert | ||
| + | shell: python -c "print [x for b in {{ servers }}[' | ||
| + | register: my_list_of_dicts | ||
| + | ~~~ | ||
| + | |||
