Estrutura de Roles no Ansible
Organização padrão de diretórios — roles são unidades reutilizáveis de automação
estrutura de roles
📄 playbook.yml
📁 roles/
📁 nginx/
├── 📁 tasks/
│ └── main.yml
├── 📁 handlers/
│ └── main.yml
├── 📁 templates/
│ └── nginx.conf.j2
├── 📁 files/
├── 📁 vars/
│ └── main.yml
├── 📁 defaults/
│ └── main.yml
└── 📁 meta/
└── main.yml
📋
tasks/main.yml
Lista de tarefas executadas pela role. É o coração da role — define o que será instalado, configurado ou alterado.
🔔
handlers/main.yml
Ações acionadas por eventos das tasks. Ex: reiniciar o nginx somente quando a config mudar.
notify: Restart nginx
📝
templates/
Arquivos Jinja2 com variáveis dinâmicas. Permitem gerar configs diferentes por host ou grupo.
server_name: {{ inventory_hostname }}
📂
files/
Arquivos estáticos copiados para os hosts sem modificação — scripts, certificados, binários.
🔢
vars/ e defaults/
Variáveis da role. defaults tem prioridade baixa (sobrescrevível). vars tem prioridade alta.
🔗
meta/main.yml
Primeiro diretório analisado. Define dependências entre roles — garante que pré-requisitos sejam executados antes.