include_role og import_role ved kjøring
Kall roller dynamisk midt i en play.
include_role og import_role ved kjøring er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 3 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.
Utover roles-listen
Den overordnede roles-listen bruker roller før noen oppgaver kjører. Noen ganger trenger du en rolle midt i play-kjøringen, akkurat der en oppgave ligger.
Kall en rolle som en oppgave
Både include_role og import_role lar deg kalle en rolle fra tasks-delen, på linje med de andre trinnene dine.
tasks:
- import_role:
name: nginximport_role er statisk
import_role behandles når playbooken analyseres, før kjøringen starter. Oppgavene settes inn tidlig, så de kan ikke avhenge av runtime-data.
include_role er dynamisk
include_role behandles under kjøringen, idet oppgaven nås. Den kan reagere på fakta og registrerte resultater.
tasks:
- include_role:
name: backup
when: do_backupKjør en rolle i en løkke
Fordi include_role kjører dynamisk, kan du plassere den i en loop og bruke den samme rollen med forskjellige variabler i hver gjennomgang.
- include_role:
name: deploy_app
loop: "{{ app_list }}"import_role kan ikke bruke loop
Siden import_role løses ved analyse av playbooken, støtter den ikke loop. Bruk include_role når du trenger å gjenta en rolle.
Slik oppfører when seg forskjellig
En when på import_role kopierer betingelsen til hver oppgave i rollen. En when på include_role styrer hele rollen som én enhet.
Send variabler på begge måter
Begge formene godtar vars for å parameterisere rollen, på samme måte som roles-listen. Verdiene sendes direkte inn i den inkluderte rollen.
- include_role:
name: web
vars:
http_port: 8080Tagger og statisk kontra dynamisk
Med import_role er tagger på de importerte oppgavene synlige for --list-tags. Med include_role må du bruke tagger på selve inkluderingen.
Velg riktig verktøy
Bruk import_role for en forutsigbar struktur som alltid kjøres. Bruk include_role når rollen må kjøres betinget eller i en loop.
Samme mønster på to nivåer
Ansible tilbyr det samme skillet mellom statisk og dynamisk for oppgavefiler: import_tasks og include_tasks fungerer på nøyaktig samme måte som disse rolle-nøkkelordene.
Rask kontroll
Husk hvilket nøkkelord som kan bruke en rolle i en loop.
Oppsummering
Bruk import_role for statisk struktur ved analyse av playbooken, og include_role for dynamisk kjøring under runtime med løkker 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 «include_role og import_role ved kjøring» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «include_role og import_role ved kjøring», 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 «include_role og import_role ved kjøring»?
Kall roller dynamisk midt i en play. 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 3 av 4.
Hvor lang tid tar leksjonen «include_role og import_role ved kjøring»?
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