0Pricing
Ansible Academy · Lección

Bucles y bloques if en plantillas

Genere secciones de configuración repetidas

Bucles y bloques if en plantillas es una lección gratuita de Ansible Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ansible Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ansible Academy incluye 4 lecciones en total.

La lógica vive en {% %}

Además de imprimir valores, Jinja2 ejecuta lógica de control dentro de las etiquetas {% %}. Así es como una plantilla genera muchas líneas. 🔁

Un bucle for básico

Use un bucle for para repetir líneas sobre una lista. Cada elemento produce otro bloque de texto generado.

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

Cierre siempre los bloques

Cada etiqueta de apertura necesita una de cierre: endfor termina un bucle, igual que endif termina una condición. Si lo olvida, el procesamiento falla.

Recorrer un diccionario

Recorra los pares de un diccionario con .items(), capturando cada clave y valor para generar una configuración estructurada.

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

La variable loop

Dentro de un bucle, Jinja2 le proporciona loop.index para el número actual y loop.first o loop.last como booleanos prácticos.

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

Un bloque if sencillo

Un bloque if genera su contenido solo cuando la condición es verdadera, de modo que la configuración opcional aparece únicamente cuando corresponde.

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

if, elif y else

Encadene opciones con elif y un else final. Se genera exactamente una rama, igual que en Python.

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

Condiciones dentro de bucles

Anide un if dentro de un for para generar solo los elementos que coincidan, como omitir los servidores desactivados de un conjunto.

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

Control de espacios en blanco

Los bucles pueden dejar líneas en blanco. Un guion como {%- -%} recorta los espacios en blanco circundantes para mantener una salida ordenada.

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

El else de un bucle for

Un for puede incluir un else que se ejecuta solo cuando la lista está vacía, perfecto para generar una línea alternativa adecuada.

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

Etiquetas de impresión frente a etiquetas lógicas

Distíngalas bien: {{ }} muestra un valor, mientras que {% %} controla el flujo, pero no imprime nada por sí misma.

Comprobación rápida

Quiere repetir una línea de configuración para cada host de una lista. ¿Qué etiqueta inicia ese bucle?

Repaso

Ahora puede recorrer elementos con for, ramificar con if, leer loop.index, anidarlos y recortar espacios en blanco. Una sola plantilla ya puede escribir una configuración dinámica. ✨

Preguntas frecuentes

¿La lección «Bucles y bloques if en plantillas» es gratis?

Sí — el texto completo de «Bucles y bloques if en plantillas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ansible Academy, actualiza a CoddyKit PRO. El curso de Ansible Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Bucles y bloques if en plantillas»?

Genere secciones de configuración repetidas Practicas Ansible Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Ansible Academy?

No se requiere experiencia previa. Ansible Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Bucles y bloques if en plantillas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Ansible Academy?

Sí. Cada lección de Ansible Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. El módulo template y los archivos .j2
  2. Variables y expresiones en Jinja2
  3. Bucles y bloques if en plantillas
  4. Filtros: default, join y upper
← Volver a Ansible Academy