Los roles de Ansible proporcionan una forma estandarizada de empaquetar tareas, manejadores, variables y plantillas para su reutilización.
🔗 Related: Hoja de trucos básica de Ansible · Guía de inicio rápido de Ansible · Ejemplos de Ansible Playbooks
Diseño estándar de directorio de roles
Genere una estructura de rol con ansible-galaxy init role_name:
roles/
common/
tasks/
main.yml # Punto de entrada principal para tareas ejecutadas por el rol
handlers/
main.yml # Manejadores activados mediante notify
templates/ # Plantillas Jinja2 (.j2) referenciadas por el módulo template
files/ # Archivos estáticos y scripts transferidos con el módulo copy
vars/
main.yml # Variables de alta precedencia específicas para este rol
defaults/
main.yml # Variables por defecto de baja precedencia (anulables)
meta/
main.yml # Dependencias del rol y metadatos del autor
Uso de roles en Playbooks
---
- name: Apply common and webserver roles
hosts: webservers
become: true
roles:
- role: common
- role: nginx
vars:
nginx_port: 8080
Precedencia de variables en roles
Las variables en defaults/main.yml tienen la precedencia más baja en Ansible, siendo valores por defecto seguros que se pueden anular fácilmente.
Las variables en vars/main.yml tienen alta precedencia y están reservadas para lógica constante interna del rol.