Objectifs
- Expliquer l’intérêt d’un rôle.
- Identifier tasks, handlers, defaults, vars, templates, files et meta.
- Appeler un rôle depuis un playbook.
- Initialiser une structure avec ansible-galaxy sans télécharger de contenu.
Structurer avec les rôles
Un rôle découpe une automatisation par responsabilité, par exemple nginx, database ou monitoring. Il fournit une convention de dossiers que l’équipe peut relire, tester et réutiliser.
Un rôle local peut être créé sans contacter Galaxy. Ansible Galaxy désigne aussi un service et des commandes de partage de rôles et collections ; auditez toute dépendance externe avant de l’adopter.
Arborescence d’un rôle
Chaque dossier possède une responsabilité. Le fichier main.yml sert généralement de point d’entrée dans le dossier lorsqu’il existe.
- tasks : actions principales du rôle.
- handlers : actions notifiées, comme un reload.
- defaults : valeurs de repli à faible précédence.
- vars : variables internes à plus forte précédence, à utiliser avec retenue.
- templates : modèles Jinja ; files : fichiers copiés tels quels.
- meta : métadonnées et dépendances du rôle.
roles/
└── nginx/
├── defaults/
│ └── main.yml
├── files/
├── handlers/
│ └── main.yml
├── meta/
│ └── main.yml
├── tasks/
│ └── main.yml
├── templates/
└── vars/
└── main.ymlInitialiser localement un rôle
La commande role init crée l’arborescence de base dans le répertoire demandé. Elle ne configure aucun serveur et ne télécharge pas de rôle distant.
ansible-galaxy role init roles/nginxCette leçon affiche la commande uniquement. Aucun accès Galaxy, réseau, SSH ou Ansible n’est lancé par IT Toolbox AI.
Appeler un rôle depuis un play
Le playbook reste court : il décrit la cible et délègue la configuration au rôle. Les valeurs personnalisables se placent de préférence dans defaults puis sont surchargées depuis l’inventory ou le play.
- Un rôle traite une responsabilité cohérente.
- Exposez des defaults documentés plutôt que de coder les valeurs en dur.
- Préfixez les variables pour réduire les collisions, par exemple nginx_listen_port.
- Fixez et révisez les versions des rôles ou collections externes.
---
- name: Configurer les serveurs web
hosts: web
become: true
roles:
- role: nginx
vars:
nginx_listen_port: 8080Erreur fréquente : transformer un rôle en fourre-tout
Mini résumé
- Les rôles fournissent une convention de structure réutilisable.
- tasks, handlers, defaults, vars, templates, files et meta ont chacun un rôle précis.
- Un play appelle un rôle avec roles et peut lui passer des variables.
- Les dépendances Galaxy externes doivent être versionnées et auditées.
Outils associés
Générer un playbook Ansible
Utilisez Ansible Playbook Generator pour préparer une base YAML locale, puis relisez et adaptez chaque tâche avant utilisation.
Ouvrir l’outilMini quiz
Trois questions pour vérifier les notions essentielles de la leçon.