Ansible Academy · Lektion

Nøgleordet loop over en liste

Installér mange pakker i én task.

Lektion 1 af 413 trin

Nøgleordet loop over en liste er en gratis Ansible Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Ansible Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Ansible Academy-kurset indeholder 4 lektioner i alt.

Stop med at kopiere og indsætte opgaver

Skal du installere tre pakker? Det er besværligt og fejlbehæftet at skrive tre næsten identiske opgaver. Nøgleordet loop lader én opgave gentage sig over en liste. 🔁

Hvad loop gør

Føj loop til en opgave, og giv den en liste. Ansible kører opgaven én gang pr. element og indsætter hver værdi i modulets argumenter.

Mød variablen item

I en opgave med et gennemløb er den aktuelle listeværdi tilgængelig som item. Du refererer til den med {{ item }}, uanset hvor du har brug for værdien.

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

Installér mange pakker

Den klassiske anvendelse er at installere en hel liste af pakker i én opgave. Hvert navn føres ind i pakkemodulet via item.

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

Gennemløb en variabelliste

Listen behøver ikke stå direkte i opgaven. Peg loop på en variabel, så den samme opgave tilpasser sig de værdier, du definerer et andet sted.

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

loop kontra with_items

Du kan se ældre playbooks, der bruger with_items. Det fungerer stadig, men loop er den moderne, anbefalede form til simple lister.

Én opgave, mange resultater

Et gennemløb kører opgaven én gang pr. element, så resultatet viser én linje for hver gentagelse. Du kan se præcis, hvilke værdier der blev ændret.

Gennemløb forbliver idempotente

Gennemløb bryder ikke idempotensen. Hvis en pakke allerede er installeret, rapporterer den pågældende gentagelse ok; kun nye pakker rapporterer changed.

Mange pakkehåndteringer kan samle installationer

Nogle moduler accepterer en liste direkte, hvilket er endnu hurtigere. Men loop er det universelle mønster, der fungerer med næsten alle moduler.

Gennemløb også tal

Lister indeholder ikke kun strenge. Du kan gennemløbe tal eller enhver anden datatype, og item indeholder den værdi, som listen rummer.

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

Tomme lister er sikre

Hvis listen er tom, kører opgaven ganske enkelt nul gange. Ingen fejl og ingen skade. Det er helt fint at gennemløbe en variabel, der kan være tom.

Hurtigt tjek

Hvordan refererer du til den aktuelle listeværdi inde i en opgave med et gennemløb?

Opsummering: Du kan gennemløbe

Du erstattede gentagne opgaver med ét loop, fik adgang til hver værdi via item og bevarede idempotensen. Næste emne: gennemløb af ordbøger. 🎉

Gratis at komme i gang

Lær YAML med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Nøgleordet loop over en liste” gratis?

Ja — hele teksten til “Nøgleordet loop over en liste” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Ansible Academy-kurset, skal du opgradere til CoddyKit PRO. Ansible Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Nøgleordet loop over en liste”?

Installér mange pakker i én task. Du øver dig i Ansible Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Ansible Academy?

Der kræves ingen tidligere erfaring. Ansible Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Nøgleordet loop over en liste”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Ansible Academy-lektion?

Ja. Alle Ansible Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Nøgleordet loop over en liste
  2. Gennemløb af dictionaries
  3. Indlejrede loops med subelements
  4. loop_control: label, index & pause
← Tilbage til Ansible Academy