Ansible Academy · leksjon

Nøkkelordet loop over en liste

Installer mange pakker i én oppgave.

Leksjon 1 av 413 trinn

Nøkkelordet loop over en liste er en gratis leksjon i Ansible Academy på CoddyKit. Dette er leksjon 1 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.

Slutt å kopiere oppgaver

Trenger du å installere tre pakker? Det er kjedelig og feilutsatt å skrive tre nesten identiske oppgaver. Nøkkelordet loop lar én oppgave gjentas over en liste. 🔁

Hva loop gjør

Legg til loop i en oppgave, og gi den en liste. Ansible kjører oppgaven én gang per element og setter hver verdi inn i modulens argumenter.

Bli kjent med item-variabelen

Inne i en oppgave med loop er den gjeldende listeverdien tilgjengelig som item. Du refererer til den med {{ item }} overalt der du trenger verdien.

- name: Show each fruit
  ansible.builtin.debug:
    msg: "{{ item }}"
  loop:
    - apple
    - banana
    - cherry

Installer mange pakker

Det klassiske bruksområdet er å installere en hel liste med pakker i én oppgave. Hvert navn sendes til pakkemodulen gjennom item.

- name: Install tools
  ansible.builtin.package:
    name: "{{ item }}"
    state: present
  loop:
    - git
    - curl
    - vim

Loop over en variabelliste

Listen trenger ikke å stå direkte i oppgaven. Pek loop på en variabel, slik at den samme oppgaven tilpasses verdiene du definerer et annet sted.

vars:
  packages:
    - git
    - curl
tasks:
  - name: Install
    ansible.builtin.package:
      name: "{{ item }}"
    loop: "{{ packages }}"

loop kontra with_items

Du kan se eldre playbooks som bruker with_items. Det fungerer fortsatt, men loop er den moderne og anbefalte formen for enkle lister.

Én oppgave, mange resultater

En loop kjører oppgaven for hvert element, så utdataene viser én resultatlinje for hver iterasjon. Du ser nøyaktig hvilke verdier som ble endret.

Looper forblir idempotente

Looping bryter ikke idempotens. Hvis en pakke allerede er installert, rapporterer den iterasjonen ok; bare nye pakker rapporterer changed.

Mange pakkebehandlere støtter batch

Noen moduler godtar en liste direkte, noe som er enda raskere. Men loop er det universelle mønsteret som fungerer med nesten alle moduler.

Loop over tall også

Lister inneholder ikke bare strenger. Du kan loope over tall eller alle andre datatyper, og item inneholder den verdien listen har.

- name: Print ports
  ansible.builtin.debug:
    msg: "Port {{ item }}"
  loop:
    - 80
    - 443
    - 8080

Tomme lister er trygge

Hvis listen er tom, kjører oppgaven ganske enkelt null ganger. Ingen feil, ingen problemer. Det er helt greit å loope over en variabel som kan være tom.

Hurtigsjekk

Hvordan refererer du til den gjeldende listeverdien inne i en oppgave med loop?

Oppsummering: Du kan bruke loop

Du erstattet gjentakende oppgaver med én loop, hentet hver verdi via item og beholdt idempotensen. Neste tema er looping over ordbøker. 🎉

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 «Nøkkelordet loop over en liste» gratis?

Ja – hele teksten i «Nøkkelordet loop over en liste» 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 «Nøkkelordet loop over en liste»?

Installer mange pakker i én oppgave. 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 1 av 4.

Hvor lang tid tar leksjonen «Nøkkelordet loop over en liste»?

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