DevOps-bootcamp · Lektion

include_role och import_role vid körning

Anropa roller dynamiskt mitt i en play

Lektion 3 av 413 steg

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: nginx

import_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_backup

Iterera ö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: 8080

Taggar 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. 🔁

Gratis att börja

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

  1. Rollberoenden i meta/main.yml
  2. defaults jämfört med vars: ordningen för överskrivning
  3. include_role och import_role vid körning
  4. allow_duplicates och rollernas idempotens
← Tillbaka till DevOps-bootcamp