Ansible Academy · leksjon

Iterere over ordbøker

Opprett brukere fra nøkkel-verdi-data.

Leksjon 2 av 413 trinn

Iterere over ordbøker er en gratis leksjon i Ansible Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Ansible Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Ansible Academy inneholder totalt 4 leksjoner.

Lister er ikke nok

Å opprette brukere krever mer enn et navn: en gruppe, et skall og en tilstand. En flat liste kan ikke inneholde dette. Du trenger en liste med ordbøker. 🗂️

En liste med ordbøker

Hver oppføring i listen blir en liten ordbok med nøkkel-verdi-par. Hver loop-iterasjon får dermed flere navngitte felt å arbeide med.

loop:
  - { name: alice, group: admin }
  - { name: bob, group: dev }

Hent nøkler med item.key

Når item er en ordbok, leser du hvert felt med item.fieldname. Dermed henter item.name og item.group verdier fra den gjeldende oppføringen.

- name: Add users
  ansible.builtin.user:
    name: "{{ item.name }}"
    group: "{{ item.group }}"
  loop:
    - { name: alice, group: admin }
    - { name: bob, group: dev }

Ryddigere format over flere linjer

Klammeparenteser på én linje blir fort trange. Skriv hver ordbok over flere linjer for bedre lesbarhet når oppføringene har mange nøkler.

loop:
  - name: alice
    group: admin
    shell: /bin/bash
  - name: bob
    group: dev
    shell: /bin/zsh

Hent listen fra variabler

Definer listen med ordbøker som en variabel, og loop deretter over den. Dataene ligger på ett sted, mens oppgaven forblir kort og gjenbrukbar.

vars:
  users:
    - { name: alice, group: admin }
tasks:
  - ansible.builtin.user:
      name: "{{ item.name }}"
    loop: "{{ users }}"

Loop over en faktisk dict

Hvis du vil iterere over en faktisk dict med nøkkel-verdi-par, sender du den gjennom filteret dict2items, slik at hvert par blir et element som kan brukes i en loop.

loop: "{{ ports | dict2items }}"

item.key og item.value

Etter dict2items har hvert element item.key og item.value, altså navnet og dataene fra den opprinnelige mappingen.

- ansible.builtin.debug:
    msg: "{{ item.key }} = {{ item.value }}"
  loop: "{{ settings | dict2items }}"

Blandede, valgfrie nøkler

Ikke alle oppføringer trenger alle nøkler. Kombiner en loop med filteret default, slik at manglende felt får en fornuftig standardverdi.

shell: "{{ item.shell | default('/bin/sh') }}"

Ordbøker holder data ryddige

Ved å samle relaterte felt per element holder du data og logikk atskilt. Når du redigerer en bruker, redigerer du dataene, aldri selve oppgaven.

Fortsatt fullstendig idempotent

Hver ordbok-iterasjon er sitt eget moduloppkall, så Ansible rapporterer changed eller ok per bruker, akkurat som med enkle lister.

Perfekt for massekonfigurasjon

Brukere, virtuelle verter og brannmurregler: Alt som har flere attributter per oppføring, passer perfekt i en liste med ordbøker.

Hurtigsjekk

Du looper over en liste med ordbøker. Hvordan leser du et felt?

Oppsummering: Looping over ordbøker

Du loopet over lister med ordbøker, leste item.name-felt og brukte dict2items for faktiske mappinger. Neste tema er nøstede looper. 🎉

Gratis å komme i gang

Lær deg YAML med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Iterere over ordbøker» gratis?

Ja – hele teksten i «Iterere over ordbøker» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Ansible Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Ansible Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Iterere over ordbøker»?

Opprett brukere fra nøkkel-verdi-data. Du øver på Ansible Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Ansible Academy?

Ingen tidligere erfaring er nødvendig. Ansible Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Iterere over ordbøker»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Ansible Academy-leksjonen?

Ja. Alle Ansible Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Nøkkelordet loop over en liste
  2. Iterere over ordbøker
  3. Nestede løkker med subelements
  4. loop_control: label, index og pause
← Tilbake til Ansible Academy