Molecule : Inclusion et exécution du rôle
🧾 Description de la leçon
Le fichier converge.yml
définit le playbook de convergence d’un scénario Molecule.
Il est exécuté sur les instances créées par le driver (Docker, Vagrant, etc.) afin d’appliquer votre rôle et de préparer l’environnement pour les tests.
🎯 Objectifs pédagogiques
- Comprendre le rôle de
converge.yml
dans le cycle Molecule - Analyser la structure d’un playbook simple (déclaration de hosts, liste de tâches)
- Utiliser le module
include_role
pour invoquer un rôle existant - Adapter ce playbook pour tester tout type de rôle Ansible
🧩 Contexte
Dans un scénario Molecule, après la création des instances (after create), la phase converge applique votre rôle sur ces instances.
Le fichier converge.yml
contient les instructions Ansible qui simulent un playbook réel de déploiement, garantissant que votre rôle fonctionne dans un environnement propre.
🛠️ Consignes
Ouvrez converge.yml
situé sous molecule/default/
et repérez le bloc suivant :
--- - name: Converge hosts: all tasks: - name: "Include nginx" include_role: name: "nginx"
Explications :
- Le sens de
name: Converge
- La portée de
hosts: all
(cibles du playbook) - Le fonctionnement du module
include_role
Ajoutez une deuxième tâche pour inclure également le rôle webapp :
- name: "Include webapp" include_role: name: "webapp"
Enregistrez vos modifications et relancez la commande Molecule :
molecule converge
pour vérifier que vos rôles nginx et webapp sont bien appliqués.
🧠 Résumé
Le converge.yml
est le cœur de la phase de convergence dans Molecule.
Il orchestre l’invocation de vos rôles sur les instances provisionnées.
Grâce à include_role
, il reste simple et modulaire, et vous permet de chaîner autant de rôles que nécessaire, assurant une couverture complète avant la phase de vérification.