Desplegar plantillas de archivos en hosts remotos
Una vez que hayas creado tus plantillas de archivos de Ansible, puedes desplegarlas en hosts remotos utilizando el módulo template
. Así es como puedes hacerlo:
Desplegar una única plantilla de archivo
Para desplegar una única plantilla de archivo, puedes utilizar la siguiente tarea de Ansible:
- name: Deploy Nginx configuration
template:
src: nginx.conf.j2
dest: /etc/nginx/conf.d/default.conf
notify:
- restart nginx
En este ejemplo, el módulo template
se utiliza para desplegar el archivo de plantilla nginx.conf.j2
en la ubicación /etc/nginx/conf.d/default.conf
de los hosts remotos. La sección notify
activa un manejador para reiniciar el servicio Nginx después de desplegar el archivo de configuración.
Desplegar múltiples plantillas de archivos
Si necesitas desplegar múltiples plantillas de archivos, puedes utilizar un bucle en tu playbook de Ansible:
- name: Deploy configuration files
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
loop:
- { src: "nginx.conf.j2", dest: "/etc/nginx/conf.d/default.conf" }
- { src: "app.conf.j2", dest: "/etc/app/app.conf" }
notify:
- restart nginx
- restart app
En este ejemplo, el módulo template
se utiliza para desplegar dos archivos de configuración, nginx.conf.j2
y app.conf.j2
, en sus respectivos destinos en los hosts remotos. La sección loop
te permite especificar múltiples plantillas de archivos para desplegar.
Después de desplegar los archivos de configuración, la sección notify
activa manejadores para reiniciar los servicios Nginx y de la aplicación.
Manejar datos sensibles
Si tus plantillas de archivos contienen datos sensibles, como credenciales de base de datos o claves de API, puedes utilizar Ansible Vault para almacenar y desplegar esta información de forma segura. Ansible Vault te permite cifrar tus datos sensibles, asegurando que no se almacenen en texto plano en tus playbooks o plantillas.
Siguiendo estas mejores prácticas para desplegar plantillas de archivos de Ansible, puedes optimizar la gestión de tu infraestructura y garantizar la coherencia en todos tus hosts remotos.