Ansible Academy · Aula

Loops e blocos if em modelos

Gere seções de configuração repetidas.

Aula 3 de 413 etapas

Loops e blocos if em modelos é uma aula grátis de Ansible Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ansible Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ansible Academy inclui 4 aulas no total.

A lógica vive em {% %}

Além de imprimir valores, o Jinja2 executa lógica de controle dentro das tags {% %}. É assim que um único modelo gera muitas linhas. 🔁

Um loop for básico

Use um loop for para repetir linhas sobre uma lista. Cada item produz outro bloco de texto renderizado.

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

Sempre feche seus blocos

Cada tag de abertura precisa de uma tag de fechamento: endfor encerra um loop, assim como endif encerra uma condição. Esquecer isso interrompe a renderização.

Percorra um dicionário

Percorra os pares de um dicionário com .items(), capturando cada chave e valor para renderizar uma configuração estruturada.

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

A variável loop

Dentro de um loop, o Jinja2 fornece loop.index para a contagem atual e loop.first ou loop.last como booleanos úteis.

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

Um bloco if simples

Um bloco if renderiza seu conteúdo somente quando a condição é verdadeira, fazendo com que a configuração opcional apareça apenas quando deve.

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

if, elif e else

Encadeie escolhas com elif e um else final. Exatamente uma ramificação é renderizada, assim como em Python.

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

Condições dentro de loops

Aninhe um if dentro de um for para renderizar apenas os itens correspondentes, como ao ignorar servidores desativados em um conjunto.

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

Controle de espaços em branco

Os loops podem deixar linhas em branco. Um sinal de menos, como {%- -%}, remove os espaços em branco ao redor para manter a saída organizada.

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

O else de um loop for

Um for pode ter um else que é executado somente quando a lista está vazia, perfeito para uma linha alternativa adequada.

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

Tags de impressão versus de lógica

Não as confunda: {{ }} produz um valor, enquanto {% %} controla o fluxo, mas não imprime nada por si só.

Verificação rápida

Você quer repetir uma linha de configuração para cada máquina em uma lista. Qual tag inicia esse loop?

Recapitulação

Agora você pode usar for para percorrer listas, if para ramificar, ler loop.index, aninhar estruturas e remover espaços em branco. Um único modelo agora escreve uma configuração dinâmica. ✨

Grátis para começar

Aprenda YAML com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Loops e blocos if em modelos” é grátis?

Sim — o texto completo de “Loops e blocos if em modelos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ansible Academy, atualize para CoddyKit PRO. O curso de Ansible Academy inclui 4 aulas no total.

O que vou aprender em “Loops e blocos if em modelos”?

Gere seções de configuração repetidas. Você pratica Ansible Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Ansible Academy?

Nenhuma experiência prévia é necessária. Ansible Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Loops e blocos if em modelos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Ansible Academy?

Sim. Cada aula de Ansible Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O módulo template e arquivos .j2
  2. Variáveis e expressões em Jinja2
  3. Loops e blocos if em modelos
  4. Filtros: default, join e upper
← Voltar para Ansible Academy