Nøgleordet loop over en liste
Installér mange pakker i én task.
Nøgleordet loop over en liste er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-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 Intensiv DevOps-uddannelse 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
- 142
- Lektioner
- 568
Ofte stillede spørgsmål
Er lektionen “Nøgleordet loop over en liste” gratis?
Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Nøgleordet loop over en liste”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-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 Intensiv DevOps-uddannelse 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å Intensiv DevOps-uddannelse?
Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse 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 Intensiv DevOps-uddannelse-lektion?
Ja. Alle Intensiv DevOps-uddannelse-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