Ansible Roles bieden een gestandaardiseerde manier om automatiseringstaken, handlers, variabelen en sjablonen te modulariseren.
🔗 Related: Ansible Basis Spiekbrief · Ansible Snelstartgids · Ansible Playbook Voorbeelden
Standaard mapstructuur van een rol
Genereer een rolstructuur met ansible-galaxy init role_name:
roles/
common/
tasks/
main.yml # Primair toegangspunt voor taken die door de rol worden uitgevoerd
handlers/
main.yml # Handlers die worden geactiveerd via notify
templates/ # Jinja2-sjablonen (.j2) gebruikt door template-module
files/ # Statische bestanden en scripts overgebracht via copy-module
vars/
main.yml # Variabelen met hoge prioriteit specifiek voor deze rol
defaults/
main.yml # Standaardvariabelen met lage prioriteit (overschrijfbaar)
meta/
main.yml # Rolafhankelijkheden en metagegevens van auteurs
Rollen gebruiken in Playbooks
---
- name: Apply common and webserver roles
hosts: webservers
become: true
roles:
- role: common
- role: nginx
vars:
nginx_port: 8080
Prioriteit van variabelen in rollen
Variabelen in defaults/main.yml hebben de laagste prioriteit en kunnen veilig worden overschreven in inventories of playbooks.
Variabelen in vars/main.yml hebben een hoge prioriteit en zijn bedoeld voor constante logica binnen de rol.