Le moteur d'Ansible orchestre, mais ce sont les modules qui agissent. Chacun sait faire une chose et une seule : poser un fichier, installer un paquet, démarrer un service, ouvrir un port. Il en existe des milliers, dont vous n'utiliserez qu'une petite trentaine. Cette section est la carte de ceux qui comptent, classés par domaine, avec pour chacun ses options réelles et son comportement d'idempotence.
Prérequis
Section intitulée « Prérequis »Il faut savoir écrire un play et lui passer des variables, ce que couvre la section Écrire du code. Un module s'appelle depuis une tâche, et ses paramètres sont du YAML comme le reste.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Trouver le bon module pour un besoin donné, sans deviner ni fouiller le web.
- Lire sa documentation depuis votre machine, dans la version exactement installée chez vous.
- Reconnaître les modules idempotents de ceux qui ne le sont pas, et savoir encadrer les seconds.
- Manipuler fichiers, paquets, services, utilisateurs, réseau et stockage avec le module adapté plutôt qu'avec une commande brute.
Choisir son module
Section intitulée « Choisir son module »Avant les modules eux-mêmes, la méthode. Ce guide explique comment chercher, comment lire la documentation embarquée, et pourquoi le nom complet d'un module compte autant. La leçon Trouver le bon module montre comment chercher dans le catalogue installé, lire sa documentation hors ligne et comprendre le nom complet d'un module.
Les modules par domaine
Section intitulée « Les modules par domaine »Sept familles, à consulter au besoin plutôt qu'à lire d'affilée. Les trois premières couvrent l'essentiel de ce que vous ferez au quotidien, les suivantes se consultent le jour où le besoin se présente.
Fichiers
Section intitulée « Fichiers »Poser du contenu sur une machine, ou en modifier une partie sans écraser le reste. C'est la famille la plus utilisée, et celle où le choix du module change tout : générer un fichier entier ou retoucher une ligne ne se traite pas de la même façon.
- copy : déposer un fichier ou un contenu littéral.
- file : créer un répertoire, un lien, ou fixer des permissions.
- lineinfile : garantir la présence d'une ligne unique.
- blockinfile : gérer un bloc délimité dans un fichier partagé.
- replace : substituer toutes les occurrences d'un motif.
- fetch : rapatrier un fichier depuis les machines gérées.
- archive et unarchive : compresser et déployer une archive.
Paquets et services
Section intitulée « Paquets et services »Installer un logiciel et le faire tourner, avec la question qui revient toujours : comment rester compatible entre distributions.
- package : le module générique, indépendant du gestionnaire.
- dnf et ses options : mises à jour de sécurité, groupes, cache.
- yum_repository : déclarer un dépôt RPM.
- systemd_service : démarrer, activer au démarrage, recharger.
- cron : planifier une tâche récurrente.
- multi-distribution : gérer les noms de paquets qui diffèrent d'un système à l'autre.
Utilisateurs
Section intitulée « Utilisateurs »Créer les comptes et leur donner les bons accès, sans se verrouiller dehors au passage.
- user : comptes, mots de passe, appartenances.
- group : groupes système.
- authorized_key : clés SSH autorisées.
- sudoers : règles d'élévation, avec validation avant écriture.
Tout ce qui touche au socle de la machine. C'est aussi la famille la plus risquée : une règle de pare-feu ou une table de partitions se répare rarement à distance.
- firewalld : zones, services et ports.
- SELinux : mode, booléens, contextes.
- mount : montages et persistance dans fstab.
- LVM : la chaîne complète du disque au point de montage.
- parted : partitionner un disque.
- filesystem : formater, et la protection contre l'écrasement.
- sysctl : paramètres noyau.
- hostname : nom de la machine.
- getent : interroger les bases système.
- reboot : redémarrer et attendre le retour.
Deux modules pour parler au réseau depuis le poste géré : l'un télécharge un fichier avec vérification d'empreinte, l'autre appelle une API et exploite sa réponse.
- get_url : télécharger un fichier, avec vérification d'empreinte.
- uri : appeler une API depuis un playbook.
Diagnostic
Section intitulée « Diagnostic »Regarder avant d'agir, attendre qu'une condition soit remplie, ou arrêter le play quand une hypothèse est fausse.
- stat : inspecter un fichier avant d'y toucher.
- find : rechercher selon des critères.
- service_facts : état réel des services.
- assert et fail : imposer une condition, interrompre proprement.
- wait_for et pause : attendre un port, un fichier, ou un humain.
Compléments
Section intitulée « Compléments »Ces modules sortent du cadre idempotent des familles précédentes ou visent une plateforme différente. On y recourt quand aucun module dédié ne convient, en connaissant le prix de ce choix.
- raw, command, shell et script : exécuter une commande quand aucun module ne convient, et comment en limiter les dégâts.
- Utilitaires du moteur : afficher une valeur, collecter les facts, créer un groupe à la volée.
- Windows : piloter des machines Windows plutôt que Linux.
Vérifier vos acquis
Section intitulée « Vérifier vos acquis »Le quiz Modules Ansible interroge chaque guide de modules au moins une fois, en quarante minutes, avec un seuil de réussite à 70 %. La banque complète, filtrable par chapitre, reste consultable dans le quiz Ansible, qui compte 74 questions sur les modules.