
Ansible expose plusieurs milliers de modules répartis dans des collections. Trois collections suffisent à couvrir 90 % des besoins quotidiens d’un sysadmin Linux : ansible.builtin (livrée avec ansible-core), ansible.posix (modules POSIX étendus pour RHEL et dérivés) et community.general (modules tiers maintenus par la communauté). Cette page vous donne le plan général : quoi attendre de chaque collection, comment les installer, et comment trouver le bon module quand vous ne savez pas par où commencer.
Pour la RHCE EX294, vous travaillez essentiellement avec ces trois collections. Connaître leurs frontières évite de perdre du temps à chercher ansible.builtin.firewalld (qui n’existe pas — c’est ansible.posix.firewalld).
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Le périmètre des trois collections principales et quand utiliser laquelle ;
- Les modules emblématiques de chacune avec leur cas d’usage typique ;
- Comment installer une collection externe via
ansible-galaxy; - Comment chercher un module avec
ansible-doc -letansible-doc <module>.
Les trois collections du quotidien
Section intitulée « Les trois collections du quotidien »ansible.builtin — livrée avec ansible-core
Section intitulée « ansible.builtin — livrée avec ansible-core »C’est la collection livrée d’office avec ansible-core. Aucune installation supplémentaire — vous avez ces modules dès pipx install ansible-core. Elle contient les briques fondamentales :
| Domaine | Modules clés |
|---|---|
| Paquets | dnf, yum, apt, package (générique), pip |
| Services systemd | systemd, service (alias de systemd sur systèmes systemd) |
| Fichiers | copy, file, lineinfile, blockinfile, replace, template, unarchive, archive |
| Utilisateurs | user, group, authorized_key |
| Réseau et URL | uri, get_url, wait_for, wait_for_connection |
| Git | git |
| Cron | cron |
| Commandes | command, shell, raw, script |
| Debug | debug, assert, fail, meta |
| Setup | setup (gather_facts), gather_facts (variante) |
| Inclusions | include_tasks, include_role, import_tasks, import_role, include_vars |
C’est la collection par défaut pour tout ce qui est portable Linux/Windows. Pour la RHCE, vous utiliserez quasi exclusivement des modules ansible.builtin.*.
ansible.posix — POSIX étendu
Section intitulée « ansible.posix — POSIX étendu »Cette collection rassemble les modules POSIX qui ne sont pas dans ansible.builtin mais sont essentiels en production RHEL/CentOS/AlmaLinux :
| Module | Rôle |
|---|---|
ansible.posix.firewalld | Configuration firewalld (zones, services, ports, riches règles) |
ansible.posix.selinux | Mode SELinux (enforcing, permissive, disabled), policy |
ansible.posix.seboolean | Boolean SELinux (httpd_can_network_connect, etc.) |
ansible.posix.mount | Montage de systèmes de fichiers (fstab) |
ansible.posix.sysctl | Paramètres sysctl (kernel, réseau, IP forwarding) |
ansible.posix.acl | ACLs POSIX (setfacl/getfacl) |
ansible.posix.at | Tâches one-shot via at |
ansible.posix.synchronize | Wrapper rsync |
ansible.posix.patch | Application de patchs source |
Installation :
ansible-galaxy collection install ansible.posixSur un Execution Environment standard, ansible.posix est déjà incluse. Sur une installation pipx install --include-deps ansible, elle est aussi incluse.
community.general — la collection fourre-tout
Section intitulée « community.general — la collection fourre-tout »Plus de 600 modules maintenus par la communauté, couvrant tout ce qui ne tient pas dans ansible.builtin ou ansible.posix. Quelques exemples d’usage courant :
| Module | Rôle |
|---|---|
community.general.timezone | Timezone système |
community.general.hostname | Hostname |
community.general.snap | Paquets Snap |
community.general.flatpak | Paquets Flatpak |
community.general.pacman | Paquets Arch Linux |
community.general.zypper | Paquets openSUSE |
community.general.htpasswd | Fichiers .htpasswd |
community.general.docker_* | Conteneurs Docker (compose, container, image, network…) |
community.general.ldap_* | LDAP (entry, attrs, search) |
community.general.consul, community.general.consul_kv | HashiCorp Consul |
community.general.proxmox* | Proxmox VE |
community.general.gitlab_* | GitLab API |
community.general.github_* | GitHub API |
Installation :
ansible-galaxy collection install community.generalInclus dans le metapackage ansible (pipx install --include-deps ansible) et dans la plupart des Execution Environments.
Au-delà des trois principales
Section intitulée « Au-delà des trois principales »Pour un usage spécialisé, vous installez d’autres collections officielles :
| Collection | Usage |
|---|---|
amazon.aws | AWS (ec2, s3, iam, vpc, rds, route53…) |
azure.azcollection | Microsoft Azure |
google.cloud | GCP |
kubernetes.core | Kubernetes (k8s, helm) |
community.libvirt | KVM/libvirt (utilisée par le lab) |
community.docker | Docker côté production |
community.mysql, community.postgresql | Bases de données SQL |
community.crypto | Certificats, OpenSSL, GPG |
community.network | Équipements réseau (Cisco, Juniper, Arista…) |
containers.podman | Podman + buildah |
fedora.linux_system_roles | Rôles certifiés Red Hat (timesync, network, firewall, selinux, kernel…) |
Toutes installables via ansible-galaxy collection install <fqcn>.
Trouver le bon module
Section intitulée « Trouver le bon module »Lister tous les modules disponibles
Section intitulée « Lister tous les modules disponibles »ansible-doc -l | head -20Affiche la liste complète des modules de toutes les collections installées, avec une description courte. Combine avec grep pour filtrer :
ansible-doc -l | grep -i firewallansible.posix.firewalld Manage arbitrary ports/services with firewalldcommunity.general.ufw Manage firewall with UFWcommunity.general.iptables_state Save iptables stateObtenir la doc complète d’un module
Section intitulée « Obtenir la doc complète d’un module »ansible-doc ansible.posix.firewalldAffiche : description, paramètres acceptés, valeurs par défaut, exemples d’utilisation, options de retour. Disponible hors-ligne sans connexion Internet.
Voir uniquement les exemples
Section intitulée « Voir uniquement les exemples »ansible-doc ansible.posix.firewalld --snippetAffiche un squelette YAML prêt à coller dans votre playbook.
Versionner les collections
Section intitulée « Versionner les collections »Pour fixer les versions sur une équipe ou en CI, déclarez-les dans requirements.yml :
---collections: - name: ansible.posix version: "2.1.0" - name: community.general version: "11.4.7" - name: community.libvirt version: "2.2.0" - name: containers.podman version: "1.19.2"Installation reproductible :
ansible-galaxy collection install -r requirements.ymlSans pin de version, vous tombez sur la dernière publiée — risque de régression silencieuse si une collection introduit un breaking change.
À retenir
Section intitulée « À retenir »ansible.builtin: livrée avecansible-core, contient toutes les briques fondamentales (dnf,systemd,copy,template,user,git…).ansible.posix: modules POSIX étendus essentiels en RHEL (firewalld,selinux,mount,sysctl,acl).community.general: 600+ modules maintenus communauté pour tout ce qui ne tient pas ailleurs (timezone,hostname,docker_*,ldap_*).ansible-doc -l | grep <nom>pour trouver un module ;ansible-doc <fqcn>pour la doc complète + exemples.requirements.ymlversionne les collections pour la reproductibilité (CI, équipe).