Nøgleordet loop over en liste
Installér mange pakker i én task.
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
- cherryInstallé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
- vimGennemlø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
- 8080Tomme 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. 🎉
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
- Nøgleordet loop over en liste
- Gennemløb af dictionaries
- Indlejrede loops med subelements
- loop_control: label, index & pause