Les rôles Ansible offrent une méthode standardisée pour organiser tâches, gestionnaires, variables et modèles pour une réutilisation modulaire.
🔗 Related: Antisèche principale d'Ansible · Guide de démarrage rapide Ansible · Exemples de playbooks Ansible
Disposition standard du répertoire d'un rôle
Générez un squelette de rôle avec ansible-galaxy init role_name :
roles/
common/
tasks/
main.yml # Point d'entrée principal des tâches exécutées par le rôle
handlers/
main.yml # Gestionnaires déclenchés via notify
templates/ # Modèles Jinja2 (.j2) référencés par le module template
files/ # Fichiers statiques et scripts transférés via le module copy
vars/
main.yml # Variables de priorité élevée spécifiques à ce rôle
defaults/
main.yml # Variables par défaut à faible priorité (surchargeables)
meta/
main.yml # Dépendances du rôle et métadonnées de l'auteur
Utilisation des rôles dans les playbooks
---
- name: Apply common and webserver roles
hosts: webservers
become: true
roles:
- role: common
- role: nginx
vars:
nginx_port: 8080
Priorité des variables dans les rôles
Les variables dans defaults/main.yml ont la priorité la plus basse dans Ansible, facilitant leur surcharge via l'inventaire ou les variables de playbook.
Les variables dans vars/main.yml ont une priorité élevée et sont réservées à la logique interne du rôle.