Ansible Academy · Lektion

Loopar och if-block i templates

Generera upprepade konfigurationsavsnitt

Lektion 3 av 413 steg

Loopar och if-block i templates är en gratis lektion i Ansible Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Ansible Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Ansible Academy innehåller totalt 4 lektioner.

Logik hör hemma i {% %}

Utöver att skriva ut värden kör Jinja2 styrlogik inuti taggarna {% %}. Det är så en mall kan generera många rader. 🔁

En grundläggande for-loop

Använd en for-loop för att upprepa rader över en lista. Varje objekt skapar ytterligare ett block renderad text.

{% for host in backends %}
server {{ host }};
{% endfor %}

Stäng alltid era block

Varje öppningstagg behöver en motsvarande stängningstagg: endfor avslutar en loop, precis som endif avslutar ett villkor. Om ni glömmer det går renderingen sönder.

Loopa över en dictionary

Gå igenom en dictionarys par med .items() och fånga varje nyckel och värde för att rendera strukturerad konfiguration.

{% for key, val in settings.items() %}
{{ key }} = {{ val }}
{% endfor %}

Variabeln loop

Inuti en loop ger Jinja2 er loop.index för det aktuella antalet samt loop.first eller loop.last som praktiska booleska värden.

{% for s in servers %}
server{{ loop.index }} {{ s }};
{% endfor %}

Ett enkelt if-block

Ett if-block renderar sitt innehåll endast när villkoret är sant, så valfri konfiguration visas bara när den ska.

{% if enable_ssl %}
ssl on;
{% endif %}

if, elif och else

Kedja val med elif och ett avslutande else. Exakt en gren renderas, precis som i Python.

{% if env == 'prod' %}
level = warn
{% else %}
level = debug
{% endif %}

Villkor i loopar

Placera ett if inuti en for för att endast rendera matchande objekt, till exempel genom att hoppa över inaktiverade servrar i en pool.

{% for h in hosts %}
{% if h.enabled %}
server {{ h.ip }};
{% endif %}
{% endfor %}

Kontroll av blanksteg

Loopar kan lämna kvar tomma rader. Ett bindestreck som {%- -%} trimmar omgivande blanksteg för ett prydligt resultat.

{%- for h in hosts -%}
{{ h }}
{%- endfor -%}

for-loopens else

En for kan ha en else som körs endast när listan var tom, vilket passar perfekt för en rimlig reservrad.

{% for h in backends %}
server {{ h }};
{% else %}
# no backends defined
{% endfor %}

Utskrifts- och logiktaggar

Håll isär dem: {{ }} skriver ut ett värde, medan {% %} styr flödet men inte skriver ut något själv.

Snabb kontroll

Ni vill upprepa en konfigurationsrad för varje värd i en lista. Vilken tagg startar loopen?

Sammanfattning

Ni kan nu loopa med for, förgrena med if, läsa loop.index, kapsla dem i varandra och trimma blanksteg. En mall skriver nu dynamisk konfiguration. ✨

Gratis att börja

Lär dig YAML 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
30
Lektioner
120

Vanliga frågor

Är lektionen ”Loopar och if-block i templates” gratis?

Ja – hela texten till ”Loopar och if-block i templates” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Ansible Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Ansible Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Loopar och if-block i templates”?

Generera upprepade konfigurationsavsnitt Ni övar på Ansible Academy 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 Ansible Academy?

Du behöver inga förkunskaper. Utbildningen i Ansible Academy 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 ”Loopar och if-block i templates”?

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 Ansible Academy-lektionen?

Ja. Varje Ansible Academy-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 Ansible Academy