DevOps-bootcamp · Les

Geneste lussen met subelements

Itereer door lijsten binnen lijsten.

Les 3 van 413 stappen

Geneste lussen met subelements is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Lijsten in lijsten

Soms bevat elk item zijn eigen lijst: een gebruiker met meerdere SSH-sleutels of een groep met veel leden. Dat is een geneste structuur. 🪆

De subelements-lookup

De subelements-lookup koppelt elk bovenliggend item aan elk onderliggend item in de binnenste lijst en maakt van de nesting afzonderlijke iteraties.

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

Twee argumenten

subelements krijgt de bovenliggende lijst en de naam van de binnenste sleutel die moet worden uitgevouwen. Het levert één iteratie per onderliggend element op.

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

item wordt een paar

Met subelements is item een lijst met twee onderdelen: item.0 is het bovenliggende woordenboek en item.1 is de huidige waarde van het onderliggende item.

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

Veel SSH-sleutels autoriseren

Het klassieke voorbeeld: geef elke gebruiker al zijn SSH-sleutels. item.0.name is de gebruiker en item.1 is per iteratie één sleutel.

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

Een onderliggend item kan een woordenboek zijn

De binnenste elementen kunnen ook woordenboeken zijn. Dan heeft item.1 eigen velden, zoals item.1.path of item.1.mode.

De iteraties tellen

Drie gebruikers met elk twee sleutels betekenen zes iteraties. subelements vermenigvuldigt bovenliggende items automatisch met hun onderliggende items.

Ontbrekende binnenste lijsten overslaan

Als bij een bovenliggend item de binnenste sleutel kan ontbreken, voeg je skip_missing toe. subelements negeert die dan stilletjes in plaats van te mislukken.

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

Waarom niet twee keer loop?

Een taak kan niet rechtstreeks twee sleutelwoorden loop nesten. subelements is de nette, ondersteunde manier om een structuur met bovenliggende en onderliggende items in één taak te doorlopen.

Leesbaar is beter dan slim

Diep geneste gegevens kunnen moeilijk te volgen worden. Houd je structuren waar mogelijk ondiep; gebruik subelements wanneer je het echt nodig hebt.

Nog steeds idempotent

Elk paar is een afzonderlijke moduleaanroep, dus een sleutel die al aanwezig is, meldt ok. Nesting verandert niets aan veilig opnieuw uitvoeren.

Korte controle

Waar verwijst item.0 naar als je subelements gebruikt?

Samenvatting: geneste lussen

Je hebt gegevens met bovenliggende en onderliggende items met subelements vlak gemaakt, item.0 en item.1 gebruikt en ontbrekende lijsten veilig afgehandeld. Hierna: loop_control. 🎉

Gratis beginnen

Leer DevOps-bootcamp met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
142
Lessen
568

Veelgestelde vragen

Is de les “Geneste lussen met subelements” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Geneste lussen met subelements”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Wat leer ik in “Geneste lussen met subelements”?

Itereer door lijsten binnen lijsten. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?

Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Geneste lussen met subelements”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?

Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Het loop-trefwoord voor een lijst
  2. Door dictionaries itereren
  3. Geneste lussen met subelements
  4. loop_control: label, index en pauze
← Terug naar DevOps-bootcamp