Ansible Roles bieten eine standardisierte Methode zur Modularisierung von Aufgaben, Handlern, Variablen und Templates für saubere Wiederverwendbarkeit.
🔗 Related: Ansible Basis-Spickzettel · Ansible Schnellstartanleitung · Ansible Playbook Beispiele
Standard-Verzeichnislayout für Rollen
Erstellen Sie ein Rollengerüst mit ansible-galaxy init role_name:
roles/
common/
tasks/
main.yml # Haupteinstiegspunkt für die von der Rolle ausgeführten Tasks
handlers/
main.yml # Handler, die über notify ausgelöst werden
templates/ # Jinja2-Vorlagen (.j2), referenziert vom Template-Modul
files/ # Statische Dateien und Skripte, übertragen via Copy-Modul
vars/
main.yml # Variablen mit hoher Priorität speziell für diese Rolle
defaults/
main.yml # Überschreibbare Standardvariablen mit niedriger Priorität
meta/
main.yml # Rollenabhängigkeiten und Autoren-Metadaten
Verwendung von Rollen in Playbooks
---
- name: Apply common and webserver roles
hosts: webservers
become: true
roles:
- role: common
- role: nginx
vars:
nginx_port: 8080
Variablenrangfolge in Rollen
In defaults/main.yml definierte Variablen haben die niedrigste Priorität in Ansible und dienen als sichere, leicht überschreibbare Standardwerte.
Variablen in vars/main.yml besitzen hohe Priorität und sind für rolleninterne Konstanten reserviert.