Dela upp playbooks med import och include
Statisk jämfört med dynamisk inkludering av uppgifter
Dela upp playbooks med import och include ä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.
En enda gigantisk fil ställer till problem
En playbook på 500 rader är svår att läsa och återanvända. Ansible låter dig dela upp arbetet i delar och ta in dem där de behövs. ✂️
Två familjer: import och include
Ansible erbjuder två sätt att återanvända innehåll: import_* för statisk inkludering och include_* för dynamisk inkludering. Skillnaden ligger i när det sker.
Statisk import_tasks
import_tasks förbehandlas när playbooken parsas, innan någon task körs. Det är fast och förutsägbart.
- import_tasks: setup.ymlDynamisk include_tasks
include_tasks bearbetas under körning, i ordning, så att den kan reagera på variabler och resultat som fastställts tidigare i playen.
- include_tasks: "{{ os_family }}.yml"Varför tidpunkten spelar roll
Eftersom import är statisk kan du inte använda en runtime-variabel i filnamnet. Då behöver du i stället den dynamiska include_tasks.
Loopar kräver include
Vill du upprepa en hel fil? Det är bara include_tasks som stöder loop, eftersom filuppsättningen avgörs medan playen körs.
- include_tasks: user.yml
loop: "{{ users }}"Taggar fungerar annorlunda
En tagg på import_tasks gäller för varje importerad task, men en tagg på include_tasks gäller bara själva include-satsen.
Importera hela playbooks
Använd import_playbook på toppnivå för att kombinera hela playbooks. Det är precis så site.yml sätter samman projektet.
- import_playbook: webservers.yml
- import_playbook: dbservers.ymlÅteranvändning mellan plays
Delade task-filer, som en gemensam bootstrap-fil, kan importeras till många playbooks, så att du skriver logiken en gång och återanvänder den överallt.
Ett klokt standardval
Föredra import för förutsägbara steg som alltid ska köras. Använd include endast när du verkligen behöver beslut under körning, till exempel loopar eller variabla filnamn.
Uppdelning i praktiken
Här importerar en play en statisk setup-fil och inkluderar sedan villkorligt en OS-specifik fil. Två verktyg, två uppgifter. 🎯
tasks:
- import_tasks: base.yml
- include_tasks: "{{ ansible_os_family }}.yml"Snabb kontroll
Du behöver ett filnamn som byggs från en runtime-variabel. Vilken direktiv fungerar?
Sammanfattning
Du har lärt dig att import_* är statiskt och parsas i förväg, medan include_* är dynamiskt och körs på plats, vilket möjliggör loopar och variabla filnamn. ✅
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 ”Dela upp playbooks med import och include” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Dela upp playbooks med import och include”, 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 ”Dela upp playbooks med import och include”?
Statisk jämfört med dynamisk inkludering av uppgifter 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 ”Dela upp playbooks med import och include”?
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
- Den rekommenderade katalogstrukturen
- group_vars- och host_vars-kataloger
- Dela upp playbooks med import och include
- Namngivning, kommentarer och skalbar kodstil