Aplicando Playbooks Reutilizables en la Práctica
Ahora que comprendes las técnicas para crear playbooks de Ansible reutilizables, exploremos cómo aplicarlas en un escenario práctico.
Escenario: Implementando una Aplicación Web
Imagina que necesitas implementar una aplicación web en múltiples entornos (por ejemplo, desarrollo, preproducción, producción). Puedes aprovechar los playbooks reutilizables para agilizar el proceso de implementación.
Estructura del Playbook
La estructura de tu playbook podría ser así:
site.yml
roles/
common/
tasks/
main.yml
nginx/
tasks/
main.yml
myapp/
tasks/
main.yml
vars/
main.yml
site.yml
El playbook principal, site.yml, incluirá los roles necesarios:
---
- hosts: all
become: true
roles:
- common
- nginx
- myapp
Rol common
El rol common instala los paquetes básicos necesarios en todos los entornos:
---
- name: Instalar paquetes necesarios
yum:
name:
- vim
- git
- epel-release
state: presente
Rol nginx
El rol nginx configura el servidor web:
---
- name: Instalar Nginx
yum:
name: nginx
state: presente
- name: Iniciar servicio Nginx
service:
name: nginx
state: started
enabled: true
Rol myapp
El rol myapp gestiona la implementación de la aplicación web:
---
- name: Implementar aplicación
unarchive:
src: "{{ app_source_url }}"
dest: /opt/myapp
remote_src: sí
- name: Iniciar aplicación
systemd:
name: myapp
state: started
enabled: true
El rol myapp también utiliza una variable definida en vars/main.yml para especificar la URL de origen de la aplicación.
Al organizar tus playbooks en roles reutilizables, puedes aplicar fácilmente la misma automatización en diferentes entornos, reduciendo el tiempo y el esfuerzo necesarios para gestionar tu infraestructura.