0Pricing
Ansible Academy · Lezione

Loop e blocchi if nei template

Generi sezioni di configurazione ripetute

Loop e blocchi if nei template è una lezione Ansible Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ansible Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ansible Academy include 4 lezioni in totale.

La logica vive in {% %}

Oltre a stampare valori, Jinja2 esegue la logica di controllo all'interno dei tag {% %}. È così che un singolo template genera molte righe. 🔁

Un ciclo for di base

Usi un ciclo for per ripetere righe su una lista. Ogni elemento produce un altro blocco di testo risultante.

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

Chiuda sempre i blocchi

Ogni tag di apertura richiede un tag di chiusura: endfor chiude un ciclo, proprio come endif chiude una condizione. Dimenticarlo interrompe il rendering.

Ciclare su un dizionario

Scorra le coppie di un dizionario con .items(), acquisendo ogni chiave e valore per generare una configurazione strutturata.

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

La variabile loop

All'interno di un ciclo, Jinja2 fornisce loop.index per il conteggio corrente e loop.first o loop.last come utili valori booleani.

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

Un semplice blocco if

Un blocco if genera il proprio contenuto solo quando la condizione è vera, così la configurazione facoltativa compare solo quando necessario.

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

if, elif ed else

Colleghi le alternative con elif e un else finale. Viene generato esattamente un ramo, proprio come in Python.

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

Condizioni all'interno dei cicli

Annidi un if all'interno di un for per generare solo gli elementi corrispondenti, ad esempio saltando i server disabilitati in un pool.

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

Controllo degli spazi bianchi

I cicli possono lasciare righe vuote. Un trattino come {%- -%} elimina gli spazi bianchi circostanti per ottenere un output ordinato.

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

L'else di un ciclo for

Un for può avere un else che viene eseguito solo quando la lista è vuota, ideale per una riga di fallback appropriata.

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

Tag di stampa e tag di logica

Li distingua: {{ }} restituisce un valore, mentre {% %} controlla il flusso ma non stampa nulla autonomamente.

Verifica rapida

Vuole ripetere una riga di configurazione per ogni host in una lista. Quale tag avvia quel ciclo?

Riepilogo

Ora può usare for per i cicli, if per le diramazioni, leggere loop.index, annidare i blocchi e rimuovere gli spazi bianchi. Un solo template ora genera una configurazione dinamica. ✨

Domande Frequenti

La lezione «Loop e blocchi if nei template» è gratuita?

Sì — il testo completo di «Loop e blocchi if nei template» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ansible Academy, passa a CoddyKit PRO. Il corso Ansible Academy include 4 lezioni in totale.

Cosa imparerò in «Loop e blocchi if nei template»?

Generi sezioni di configurazione ripetute Eserciti Ansible Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ansible Academy?

Non è richiesta alcuna esperienza precedente. Ansible Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Loop e blocchi if nei template»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ansible Academy?

Sì. Ogni lezione Ansible Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Il modulo template e i file .j2
  2. Variabili ed espressioni in Jinja2
  3. Loop e blocchi if nei template
  4. Filtri: default, join e upper
← Torna a Ansible Academy