0Pricing
DevOps Bootcamp · Lektion

Verschachtelte Schleifen mit subelements

Durchlaufen Sie Listen innerhalb von Listen.

Verschachtelte Schleifen mit subelements ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Listen in Listen

Manchmal besitzt jedes Element seine eigene Liste: ein Benutzer mit mehreren SSH-Schlüsseln oder eine Gruppe mit vielen Mitgliedern. Das ist eine verschachtelte Struktur. 🪆

Das subelements-Lookup

Das Lookup subelements kombiniert jedes übergeordnete Element mit jedem untergeordneten Element seiner inneren Liste und löst so die Verschachtelung in einzelne Iterationen auf.

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

Zwei Argumente

subelements übernimmt die übergeordnete Liste und den Namen des inneren Schlüssels, der erweitert werden soll. Es erzeugt eine Iteration pro untergeordnetem Element.

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

item wird zu einem Paar

Mit subelements ist item eine zweiteilige Liste: item.0 ist das übergeordnete Dictionary und item.1 der aktuelle Wert des untergeordneten Elements.

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

Viele SSH-Schlüssel autorisieren

Der klassische Anwendungsfall: Geben Sie jedem Benutzer alle seine SSH-Schlüssel. item.0.name ist der Benutzer, item.1 ein Schlüssel pro Iteration.

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

Das untergeordnete Element kann ein Dict sein

Auch die inneren Elemente können Dictionaries sein. Dann besitzt item.1 eigene Felder wie item.1.path oder item.1.mode.

Iterationen zählen

Drei Benutzer mit jeweils zwei Schlüsseln ergeben sechs Iterationen. subelements multipliziert die übergeordneten Elemente automatisch mit ihren untergeordneten Elementen.

Fehlende innere Listen überspringen

Falls einem übergeordneten Element der innere Schlüssel fehlen kann, fügen Sie skip_missing hinzu. subelements ignoriert ihn dann stillschweigend, statt mit einem Fehler abzubrechen.

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

Warum nicht zwei loops?

Ein Task kann nicht direkt zwei loop-Schlüsselwörter verschachteln. subelements ist die saubere, unterstützte Möglichkeit, eine übergeordnete Struktur mit untergeordneten Elementen in einem Task zu durchlaufen.

Lesbarkeit vor Cleverness

Tief verschachtelte Daten können schwer nachzuvollziehen sein. Halten Sie Ihre Strukturen möglichst flach und verwenden Sie subelements nur, wenn Sie es wirklich benötigen.

Weiterhin idempotent

Jedes Paar ist ein separater Modulaufruf. Daher meldet das Hinzufügen eines bereits vorhandenen Schlüssels ok. Die Verschachtelung ändert nichts an sicheren erneuten Ausführungen.

Kurzer Check

Worauf verweist item.0 bei der Verwendung von subelements?

Zusammenfassung: Verschachtelte Schleifen

Sie haben übergeordnete und untergeordnete Daten mit subelements aufgelöst, item.0 und item.1 verwendet und fehlende Listen sicher behandelt. Als Nächstes: loop_control. 🎉

Häufig gestellte Fragen

Ist die Lektion „Verschachtelte Schleifen mit subelements“ kostenlos?

Ja — der vollständige Text von „Verschachtelte Schleifen mit subelements“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Verschachtelte Schleifen mit subelements“?

Durchlaufen Sie Listen innerhalb von Listen. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um DevOps Bootcamp zu starten?

Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Verschachtelte Schleifen mit subelements“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?

Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Das loop-Schlüsselwort für Listen
  2. Über Dictionaries iterieren
  3. Verschachtelte Schleifen mit subelements
  4. loop_control: label, index und pause
← Zurück zu DevOps Bootcamp