0Pricing
Ansible Academy · Leçon

Boucles imbriquées avec subelements

Parcourez des listes imbriquées.

Boucles imbriquées avec subelements est une leçon Ansible Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ansible Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ansible Academy comprend 4 leçons au total.

Des listes dans des listes

Parfois, chaque élément possède sa propre liste : un utilisateur avec plusieurs clés SSH, un groupe avec de nombreux membres. Il s’agit d’une structure imbriquée. 🪆

La recherche subelements

La recherche subelements associe chaque parent à chacun des éléments enfants de sa liste interne, et aplatit l’imbrication en itérations individuelles.

loop: "{{ users | subelements('keys') }}"

Deux arguments

subelements reçoit la liste parente et le nom de la clé interne à développer. Il produit une itération pour chaque élément enfant.

vars:
  users:
    - name: alice
      keys:
        - keyA
        - keyB

item devient une paire

Avec subelements, item est une liste en deux parties : item.0 est le dictionnaire parent et item.1 est la valeur enfant actuelle.

- ansible.builtin.debug:
    msg: "{{ item.0.name }} has {{ item.1 }}"
  loop: "{{ users | subelements('keys') }}"

Autoriser de nombreuses clés SSH

Le cas d’école : fournir à chaque utilisateur toutes ses clés SSH. item.0.name désigne l’utilisateur et item.1 désigne une clé par itération.

- ansible.posix.authorized_key:
    user: "{{ item.0.name }}"
    key: "{{ item.1 }}"
  loop: "{{ users | subelements('keys') }}"

L’enfant peut être un dictionnaire

Les éléments internes peuvent eux aussi être des dictionnaires. Dans ce cas, item.1 possède ses propres champs, comme item.1.path ou item.1.mode.

Compter les itérations

Trois utilisateurs avec deux clés chacun représentent six itérations. subelements multiplie automatiquement les parents par leurs enfants.

Ignorer les listes internes manquantes

Si un parent peut ne pas posséder la clé interne, ajoutez skip_missing afin que subelements l’ignore discrètement au lieu d’échouer.

loop: "{{ users | subelements('keys', skip_missing=true) }}"

Pourquoi pas deux boucles ?

Une tâche ne peut pas imbriquer directement deux mots-clés loop. subelements est la méthode propre et prise en charge pour parcourir une structure parent-enfant dans une seule tâche.

La lisibilité vaut mieux que l’ingéniosité

Les données profondément imbriquées peuvent devenir difficiles à suivre. Gardez vos structures peu profondes lorsque c’est possible ; utilisez subelements lorsque vous en avez réellement besoin.

Toujours idempotent

Chaque paire constitue un appel de module distinct ; l’ajout d’une clé déjà présente indique donc ok. L’imbrication ne change rien à la sûreté des nouvelles exécutions.

Vérification rapide

Avec subelements, à quoi item.0 fait-il référence ?

Récapitulatif : boucles imbriquées

Vous avez aplati des données parent-enfant avec subelements, utilisé item.0 et item.1, et géré les listes manquantes en toute sécurité. Ensuite : loop_control. 🎉

Questions Fréquemment Posées

La leçon « Boucles imbriquées avec subelements » est-elle gratuite ?

Oui — le texte complet de « Boucles imbriquées avec subelements » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ansible Academy, passe à CoddyKit PRO. Le cours Ansible Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Boucles imbriquées avec subelements » ?

Parcourez des listes imbriquées. Tu pratiques Ansible Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Ansible Academy ?

Aucune expérience préalable n'est requise. Ansible Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Boucles imbriquées avec subelements » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Ansible Academy ?

Oui. Chaque leçon Ansible Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Le mot-clé loop sur une liste
  2. Parcourir des dictionnaires
  3. Boucles imbriquées avec subelements
  4. loop_control : label, index et pause
← Retour à Ansible Academy