DevOps-bootcamp · Lektion

Modulen template och .j2-filer

Distribuera en renderad fil till en värd

Lektion 1 av 413 steg

Modulen template och .j2-filer är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 1 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.

Statiska filer räcker inte

Modulen copy levererar en fil oförändrad. Men konfigurationsfiler behöver ofta en port eller ett värdnamn som skiljer sig mellan servrar, så statiska kopior räcker inte till. 🤔

Använd modulen template

Modulen template renderar först en fil via Jinja2 genom att fylla i variabler och kopierar sedan resultatet till värden.

- name: Deploy config
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf

.j2-konventionen

Källfiler för mallar slutar med .j2 för att markera dem som Jinja2-filer. Det är en konvention, inte en strikt regel, men alla följer den.

src och dest

src pekar på .j2-filen på kontrollnoden, och dest är den slutliga sökvägen på den hanterade värden.

template:
  src: app.conf.j2
  dest: /etc/app/app.conf

Var mallar finns

Som standard letar Ansible efter mallar i katalogen templates bredvid playbooken eller inuti en roll. Något sökvägsprefix behövs inte.

templates/
  nginx.conf.j2
site.yml

En minimal mall

I .j2-filen förblir vanlig text oförändrad och markörer med {{ }} ersätts. Här blir en portvariabel ett faktiskt tal.

listen {{ http_port }};
server_name {{ domain }};

Ange filbehörigheter

Precis som copy accepterar template owner, group och mode, så att den renderade filen får rätt ägarskap.

template:
  src: app.conf.j2
  dest: /etc/app.conf
  mode: "0644"

Validera före skrivning

Alternativet validate kör ett kontrollkommando på den renderade filen innan den installeras, så att en trasig konfiguration aldrig distribueras.

template:
  src: sshd.j2
  dest: /etc/ssh/sshd_config
  validate: "sshd -t -f %s"

Mallar är idempotenta

Om det renderade resultatet matchar filen som redan finns på värden rapporterar template ok och ändrar ingenting. Säkert att köra om och om igen.

Meddela en handler vid ändring

Kombinera template med notify så att en tjänst endast startas om när konfigurationsfilen faktiskt ändrades. En perfekt kombination.

template:
  src: nginx.conf.j2
  dest: /etc/nginx/nginx.conf
  notify: restart nginx

template jämfört med copy

Välj copy när en fil är likadan överallt och template när någon del måste variera mellan värdar.

Snabb kontroll

Ni behöver en konfigurationsfil vars port skiljer sig mellan servrar. Vilken modul passar?

Sammanfattning

Ni har nu mött modulen template: den renderar en .j2-fil med Jinja2, placerar den på dest, anger behörigheter och förblir idempotent. ✨

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 ”Modulen template och .j2-filer” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Modulen template och .j2-filer”, 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 ”Modulen template och .j2-filer”?

Distribuera en renderad fil till en värd 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 1 av 4.

Hur lång tid tar lektionen ”Modulen template och .j2-filer”?

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. Modulen template och .j2-filer
  2. Variabler och uttryck i Jinja2
  3. Loopar och if-block i templates
  4. Filter: default, join och upper
← Tillbaka till DevOps-bootcamp