Ansible automatise la configuration de serveurs et le déploiement applicatif via des playbooks YAML, sans agent à installer. Sa connexion SSH et son modèle idempotent en font un outil idéal pour enseigner la gestion de configuration.
Points clés
- Inventaire, modules et idempotence
- Playbooks, rôles et handlers
- Variables, templates Jinja2 et secrets
Inventaire, modules et idempotence
Ansible agit sur un inventaire (fichier INI ou YAML, ou inventaire dynamique) qui liste les hôtes et les groupes. Chaque tâche appelle un module (apt, copy, template, service) conçu pour être idempotent : relancer le playbook ne change rien si l'état est déjà atteint. Faire comprendre l'idempotence est central, c'est ce qui distingue Ansible d'un simple script bash.
Playbooks, rôles et handlers
Un playbook décrit des plays qui associent des hôtes à des tâches. Pour structurer, on utilise les rôles qui rangent tasks, templates, defaults et handlers dans une arborescence standard. Les handlers se déclenchent via notify, typiquement pour redémarrer un service uniquement si sa configuration a changé.
Variables, templates Jinja2 et secrets
Les variables se définissent dans group_vars, host_vars ou en ligne. Les templates Jinja2 (.j2) génèrent des fichiers de configuration paramétrés. Pour les mots de passe et clés, Ansible Vault chiffre les fichiers de variables avec AES, et on évite ainsi de stocker des secrets en clair dans le dépôt.
En pratique
Scénario. Prévoir un TP de 2 à 3 heures avec deux machines cibles (VM Vagrant ou conteneurs avec SSH). Les apprenants écrivent un playbook qui installe et configure Nginx via un template Jinja2, utilise un handler de reload, et chiffre le mot de passe admin avec Ansible Vault. Livrable : un rôle Ansible exécutable en une commande ansible-playbook et idempotent en double exécution.
Questions fréquentes
Ansible a-t-il besoin d'un agent sur les machines cibles ?
Non, Ansible fonctionne par SSH (ou WinRM sous Windows) et n'exige que Python sur les hôtes. C'est son principal avantage face à Puppet ou Chef.
Comment vérifier qu'un playbook est idempotent ?
On le lance deux fois : à la seconde exécution, le récapitulatif doit afficher zéro changed. Sinon une tâche n'est pas correctement idempotente.
Pour aller plus loin
Pour approfondir : Apprendre terraform pas a pas · Automatiser les mises a jour. Et le reste de nos ressources pour les écoles, OF et formateurs.
Besoin d'un formateur expert ou envie de transmettre ?
tonformateur connecte les écoles et organismes de formation avec des intervenants experts du terrain.
Voir les cours à pourvoir Explorer l'annuaire d'outils →