El módulo template y los archivos .j2
Implemente un archivo renderizado en un host
El módulo template y los archivos .j2 es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 1 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 DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
Los archivos estáticos no bastan
El módulo copy entrega un archivo sin modificarlo. Sin embargo, los archivos de configuración suelen necesitar un puerto o un hostname distintos en cada servidor, por lo que las copias estáticas no son suficientes. 🤔
Entra en juego el módulo template
El módulo template procesa primero un archivo mediante Jinja2, rellenando las variables, y después copia el resultado al host.
- name: Deploy config
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.confLa convención .j2
Los archivos fuente de las plantillas terminan en .j2 para indicar que usan Jinja2. Es una convención, no una regla estricta, pero todo el mundo la sigue.
src y dest
src apunta al archivo .j2 en su nodo de control y dest es la ruta final en el host administrado.
template:
src: app.conf.j2
dest: /etc/app/app.confDónde se encuentran las plantillas
De forma predeterminada, Ansible busca las plantillas en un directorio templates junto al playbook o dentro de un role. No hace falta ningún prefijo de ruta.
templates/
nginx.conf.j2
site.ymlUna plantilla mínima
Dentro del archivo .j2, el texto normal permanece igual y los marcadores {{ }} se sustituyen. Aquí una variable de puerto se convierte en un número real.
listen {{ http_port }};
server_name {{ domain }};Establecer permisos de archivo
Al igual que copy, template acepta owner, group y mode, de modo que el archivo generado conserva la propiedad adecuada.
template:
src: app.conf.j2
dest: /etc/app.conf
mode: "0644"Validar antes de escribir
La opción validate ejecuta un comando de comprobación sobre el archivo generado antes de instalarlo, por lo que nunca se distribuye una configuración defectuosa.
template:
src: sshd.j2
dest: /etc/ssh/sshd_config
validate: "sshd -t -f %s"Las plantillas son idempotentes
Si el resultado generado coincide con el archivo que ya existe en el host, template informa ok y no cambia nada. Puede ejecutarlo una y otra vez de forma segura.
Notificar a un handler cuando haya cambios
Combine template con notify para que un servicio solo se reinicie cuando el archivo de configuración haya cambiado realmente. Una combinación perfecta.
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: restart nginxtemplate frente a copy
Use copy cuando un archivo sea igual en todas partes y template cuando alguna parte deba variar según el host.
Comprobación rápida
Necesita un archivo de configuración cuyo puerto sea distinto en cada servidor. ¿Qué módulo es el adecuado?
Repaso
Ha conocido el módulo template: procesa un archivo .j2 con Jinja2, lo coloca en dest, establece los permisos y mantiene la idempotencia. ✨
Preguntas frecuentes
¿La lección «El módulo template y los archivos .j2» es gratis?
Sí — el texto completo de «El módulo template y los archivos .j2» 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 DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «El módulo template y los archivos .j2»?
Implemente un archivo renderizado en un host Practicas DevOps Bootcamp 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 DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp 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 1 de 4.
¿Cuánto tiempo toma la lección «El módulo template y los archivos .j2»?
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 DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp 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
- El módulo template y los archivos .j2
- Variables y expresiones en Jinja2
- Bucles y bloques if en plantillas
- Filtros: default, join y upper