Ansible Academy · Lektion

Modulet template & .j2-filer

Udrul en renderet fil til en vært.

Lektion 1 af 413 trin

Modulet template & .j2-filer er en gratis Ansible Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Ansible Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Ansible Academy-kurset indeholder 4 lektioner i alt.

Statiske filer er ikke nok

copy-modulet leverer en fil uændret. Men konfigurationsfiler har ofte brug for en port eller et værtsnavn, der varierer fra server til server, så statiske kopier er ikke tilstrækkelige. 🤔

Mød template-modulet

template-modulet gengiver først en fil via Jinja2, udfylder variabler og kopierer derefter resultatet til værten.

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

Konventionen med .j2

Kildefiler til skabeloner slutter med .j2 for at markere dem som Jinja2. Det er en konvention, ikke en fast regel, men alle følger den.

src og dest

src peger på .j2-filen på din kontrolnode, og dest er den endelige sti på den administrerede vært.

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

Hvor skabeloner placeres

Som standard leder Ansible efter skabeloner i en mappe med navnet templates ved siden af din playbook eller inde i en rolle. Der er ikke brug for et sti-præfiks.

templates/
  nginx.conf.j2
site.yml

En minimal skabelon

Inde i .j2-filen forbliver almindelig tekst uændret, og markører med {{ }} bliver erstattet. Her bliver en portvariabel til et rigtigt tal.

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

Angiv filtilladelser

Ligesom copy accepterer template owner, group og mode, så den gengivne fil får det rigtige ejerskab.

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

Validér før skrivning

Indstillingen validate kører en kontrolkommando på den gengivne fil, før den installeres, så en ødelagt konfiguration aldrig bliver installeret.

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

Skabeloner er idempotente

Hvis det gengivne output matcher filen, der allerede findes på værten, rapporterer template ok og ændrer ingenting. Det er sikkert at køre igen og igen.

Underret en handler ved ændringer

Kombinér template med notify, så en tjeneste kun genstartes, når konfigurationsfilen faktisk blev ændret. Et perfekt match.

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

template kontra copy

Brug copy, når en fil er ens overalt, og template, når en del af den skal variere fra vært til vært.

Hurtigt tjek

Du skal bruge en konfigurationsfil, hvis port varierer fra server til server. Hvilket modul passer?

Opsummering

Du har mødt template-modulet: Det gengiver en .j2-fil med Jinja2, placerer den på dest, angiver tilladelser og er idempotent. ✨

Gratis at komme i gang

Lær YAML med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Modulet template & .j2-filer” gratis?

Ja — hele teksten til “Modulet template & .j2-filer” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Ansible Academy-kurset, skal du opgradere til CoddyKit PRO. Ansible Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Modulet template & .j2-filer”?

Udrul en renderet fil til en vært. Du øver dig i Ansible Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Ansible Academy?

Der kræves ingen tidligere erfaring. Ansible Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Modulet template & .j2-filer”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Ansible Academy-lektion?

Ja. Alle Ansible Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Modulet template & .j2-filer
  2. Variabler & udtryk i Jinja2
  3. Loops & if-blokke i templates
  4. Filtre: default, join & upper
← Tilbage til Ansible Academy