Loops e blocos if em modelos
Gere seções de configuração repetidas.
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. ✨
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
- O módulo template e arquivos .j2
- Variáveis e expressões em Jinja2
- Loops e blocos if em modelos
- Filtros: default, join e upper