Rolleavhengigheter i meta/main.yml
Kjed sammen roller som krever andre roller.
Rolleavhengigheter i meta/main.yml er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.
Roller som trenger andre roller
Noen roller fungerer bare hvis en annen rolle har kjørt først. Applikasjonsrollen din kan for eksempel trenge en grunnrolle som sikrer serveren før utrulling.
Bli kjent med meta/main.yml
Alle roller kan inneholde filen meta/main.yml. Den lagrer metadata om rollen, for eksempel forfatter, plattformer som støttes, og avhengigheter.
Nøkkelen dependencies
Inne i meta/main.yml viser nøkkelen dependencies hvilke roller som må kjøre før denne. Ansible bruker dem først, automatisk.
dependencies:
- role: common
- role: firewallAvhengigheter kjører først
Når du bruker en rolle, kjører Ansible de oppførte dependencies før rollen, i den angitte rekkefølgen, og kjører deretter rollens egne oppgaver.
Send variabler til en avhengighet
Du kan sende variabler til en avhengighet direkte i listen. Grunnrollen kjører da med nøyaktig den konfigurasjonen denne rollen trenger.
dependencies:
- role: nginx
vars:
http_port: 8080En ekte avhengighetskjede
En webapp-rolle er avhengig av nginx, som igjen er avhengig av common. Bruk webapp, så løses hele kjeden ovenfra og ned for deg.
Betingede avhengigheter
En avhengighet kan ha en when-betingelse, slik at den bare kjører på verter som oppfyller betingelsen. Du kan for eksempel hoppe over brannmurrollen på utviklingsmaskiner.
dependencies:
- role: firewall
when: env == 'prod'Avhengigheter er statiske
Avhengigheter i meta løses før play-kjøringen starter. De kan ikke bruke runtime-fakta som hentes senere, så hold betingelsene enkle.
Galaxy leser også meta
Når du installerer en rolle fra Ansible Galaxy, leser den meta/main.yml og henter automatisk alle avhengighetene som er oppført der.
Hold avhengighetene ærlige
Oppgi bare en rolle som avhengighet hvis den faktisk må kjøre først. Skjulte kjeder gjør automatisering vanskelig å forstå og feilsøke.
Galaxy-informasjon finnes også her
I tillegg til avhengigheter inneholder meta/main.yml galaxy_info: lisens, minste Ansible-versjon og plattformer. Den dokumenterer hvordan rollen skal brukes.
Rask kontroll
Husk hvor du angir at én rolle må kjøre før en annen.
Oppsummering
Oppgi nødvendige roller under dependencies i meta/main.yml, så kjører Ansible denne kjeden først, eventuelt med variabler og betingelser. 🔗
Lær deg DevOps-bootcamp 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
- 142
- Leksjoner
- 568
Ofte stilte spørsmål
Er leksjonen «Rolleavhengigheter i meta/main.yml» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «Rolleavhengigheter i meta/main.yml», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.
Hva lærer jeg i «Rolleavhengigheter i meta/main.yml»?
Kjed sammen roller som krever andre roller. Du øver på DevOps-bootcamp 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 DevOps-bootcamp?
Ingen tidligere erfaring er nødvendig. DevOps-bootcamp 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 «Rolleavhengigheter i meta/main.yml»?
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 DevOps-bootcamp-leksjonen?
Ja. Alle DevOps-bootcamp-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
- Rolleavhengigheter i meta/main.yml
- defaults kontra vars: Rekkefølgen for overstyring
- include_role og import_role ved kjøring
- allow_duplicates og idempotens for roller