Hva er Ansible With_items?
Ansibelen med_items er en hendig plugin for å utføre sløyfeoperasjoner i en spillbok. Pluginen godtar elementer og sender dem deretter til anropsmodulen. Du kan for eksempel passere en liste over pakker for å installere og deretter gi hvert element i listen til installasjonsoppgaven.
Merk: Hvis et element har en nestet liste, vil Ansible flate den ut, men ikke rekursjon.
For å bruke plugins med_items, bruk nøkkelordet med_items i en spillbok og pass en liste over elementer under den. Du kan deretter ringe hvert element i den spesifiserte listen og utføre de nødvendige operasjonene.
Grunnleggende bruk
Følgende eksempel illustrerer syntaks for med_items -plugin:
---
- Verter: Alle
Navn: Med syntaks for elementer
Debug:
MSG: "Dette er element item"
med_items:
- "en"
- "B"
- "C"
Eksemplet ovenfor viser en enkel liste ved hjelp av med_items -plugin.
Hvis du vil ha en nestet liste, kan du gjøre:
---
- Verter: Alle
Navn: Nestet liste
Debug:
MSG: "Databaser item"
med_items:
- ["MySQL", "PostgreSql"] - "SQL"
- ["MongoDB", "DocumentDB", "Firestore"] - "NoSQL"
Du kan også ha en liste med variabler i den, som vist i eksemplet Playbook nedenfor:
---
- Verter: Alle
Navn: Nestet liste
var1: "element.var1 "
var2: "element.var2 "
med_items:
- var1: Eksempel1, var2: Eksempel2
- var1: Eksempel3, var2: Eksempel4
Ansible With_items eksempler
Følgende eksempler illustrerer hvordan du kan bruke Ansible With_items -modulen.
---
- Verter: Alle
bli: sant
Samle_facts: Nei
oppgaver:
- Navn: Opprett brukere
bruker:
Navn: "item"
Grupper: Test
Stat: Nåværende
med_items:
- Bruker1
- Bruker2
Playbook ovenfor bruker med_items for å lage flere brukere.
---
- Verter: Alle
bli: sant
Samle_facts: Nei
oppgaver:
- Navn: Installer pakker
apt:
Navn: "item"
Stat: Nåværende
med_items:
- Apache2
- ufw
- mysql
I eksemplet over bruker vi med_itemene for å sløyfe over varene og gi dem til APT -pakkeninstallatøren.
---
- Verter: Alle
bli: sant
Samle_facts: Nei
oppgaver:
- Navn: Lag filer
fil:
Sti: "~/element.Navn"
Stat: berøring
modus: "element.perm "
med_items:
- Navn: File1, Perm: "0777"
- Navn: File2, Perm: "0644"
I eksemplet playbook ovenfor oppretter vi en liste over filer og deres respektive tillatelser ved hjelp av med_items -plugin.
Konklusjon
Denne guiden diskuterte hvordan ANSIBLE With_ITEMS -plugin fungerer og hvordan du sløyfe over en liste over elementer.