include_role och import_role vid körning
Anropa roller dynamiskt mitt i en play
include_role och import_role vid körning är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Bortom listan med roller
Listan med roles på toppnivå tillämpar roller innan några tasker körs. Ibland behöver du köra en roll mitt i en play-körning, precis där en task finns.
Anropa en roll som en task
Både include_role och import_role låter dig anropa en roll inifrån avsnittet tasks, tillsammans med dina andra steg.
tasks:
- import_role:
name: nginximport_role är statisk
import_role behandlas när playbooken tolkas, innan körningen startar. Dess tasker infogas tidigt och kan därför inte vara beroende av data från körningen.
include_role är dynamisk
include_role behandlas under körningen, i det ögonblick då den tasken nås. Den kan reagera på fakta och registrerade resultat.
tasks:
- include_role:
name: backup
when: do_backupIterera över en roll
Eftersom include_role körs dynamiskt kan du placera den i en loop och tillämpa samma roll med olika variabler vid varje iteration.
- include_role:
name: deploy_app
loop: "{{ app_list }}"import_role kan inte loopas
Eftersom import_role löses vid tolkningen stöder den inte loop. Använd include_role när du behöver upprepa en roll.
Så skiljer sig when åt
Ett when på import_role kopierar villkoret till varje task inuti. Ett when på include_role styr hela rollen som en enhet.
Skicka variabler på båda sätten
Båda formerna accepterar vars för att parameterisera rollen, precis som listan med roles gör. Värdena skickas direkt till den inkluderade rollen.
- include_role:
name: web
vars:
http_port: 8080Taggar och statiskt kontra dynamiskt
Med import_role visas taggar på de importerade taskerna för --list-tags. Med include_role måste du tillämpa taggar på själva include.
Välj rätt verktyg
Använd import_role för en förutsägbar struktur som alltid körs. Använd include_role när rollen måste köras villkorligt eller i en loop.
Samma mönster på två nivåer
Ansible erbjuder samma uppdelning mellan statiskt och dynamiskt för task-filer: import_tasks och include_tasks motsvarar exakt dessa nyckelord för roller.
Snabb kontroll
Kom ihåg vilket nyckelord som kan tillämpa en roll inuti en loop.
Sammanfattning
Använd import_role för statisk struktur vid tolkning och include_role för dynamiskt anrop under körning, med loopar och villkor. 🔁
Lär dig DevOps-bootcamp med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”include_role och import_role vid körning” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”include_role och import_role vid körning”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”include_role och import_role vid körning”?
Anropa roller dynamiskt mitt i en play Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”include_role och import_role vid körning”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Rollberoenden i meta/main.yml
- defaults jämfört med vars: ordningen för överskrivning
- include_role och import_role vid körning
- allow_duplicates och rollernas idempotens