Aller au contenu
Infrastructure as Code medium

Modules built-in Ansible : ansible.builtin, ansible.posix, community.general

6 min de lecture

Logo Ansible

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).

  • 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 -l et ansible-doc <module>.

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 :

DomaineModules clés
Paquetsdnf, yum, apt, package (générique), pip
Services systemdsystemd, service (alias de systemd sur systèmes systemd)
Fichierscopy, file, lineinfile, blockinfile, replace, template, unarchive, archive
Utilisateursuser, group, authorized_key
Réseau et URLuri, get_url, wait_for, wait_for_connection
Gitgit
Croncron
Commandescommand, shell, raw, script
Debugdebug, assert, fail, meta
Setupsetup (gather_facts), gather_facts (variante)
Inclusionsinclude_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.*.

Cette collection rassemble les modules POSIX qui ne sont pas dans ansible.builtin mais sont essentiels en production RHEL/CentOS/AlmaLinux :

ModuleRôle
ansible.posix.firewalldConfiguration firewalld (zones, services, ports, riches règles)
ansible.posix.selinuxMode SELinux (enforcing, permissive, disabled), policy
ansible.posix.sebooleanBoolean SELinux (httpd_can_network_connect, etc.)
ansible.posix.mountMontage de systèmes de fichiers (fstab)
ansible.posix.sysctlParamètres sysctl (kernel, réseau, IP forwarding)
ansible.posix.aclACLs POSIX (setfacl/getfacl)
ansible.posix.atTâches one-shot via at
ansible.posix.synchronizeWrapper rsync
ansible.posix.patchApplication de patchs source

Installation :

Fenêtre de terminal
ansible-galaxy collection install ansible.posix

Sur un Execution Environment standard, ansible.posix est déjà incluse. Sur une installation pipx install --include-deps ansible, elle est aussi incluse.

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 :

ModuleRôle
community.general.timezoneTimezone système
community.general.hostnameHostname
community.general.snapPaquets Snap
community.general.flatpakPaquets Flatpak
community.general.pacmanPaquets Arch Linux
community.general.zypperPaquets openSUSE
community.general.htpasswdFichiers .htpasswd
community.general.docker_*Conteneurs Docker (compose, container, image, network…)
community.general.ldap_*LDAP (entry, attrs, search)
community.general.consul, community.general.consul_kvHashiCorp Consul
community.general.proxmox*Proxmox VE
community.general.gitlab_*GitLab API
community.general.github_*GitHub API

Installation :

Fenêtre de terminal
ansible-galaxy collection install community.general

Inclus dans le metapackage ansible (pipx install --include-deps ansible) et dans la plupart des Execution Environments.

Pour un usage spécialisé, vous installez d’autres collections officielles :

CollectionUsage
amazon.awsAWS (ec2, s3, iam, vpc, rds, route53…)
azure.azcollectionMicrosoft Azure
google.cloudGCP
kubernetes.coreKubernetes (k8s, helm)
community.libvirtKVM/libvirt (utilisée par le lab)
community.dockerDocker côté production
community.mysql, community.postgresqlBases de données SQL
community.cryptoCertificats, OpenSSL, GPG
community.networkÉquipements réseau (Cisco, Juniper, Arista…)
containers.podmanPodman + buildah
fedora.linux_system_rolesRôles certifiés Red Hat (timesync, network, firewall, selinux, kernel…)

Toutes installables via ansible-galaxy collection install <fqcn>.

Fenêtre de terminal
ansible-doc -l | head -20

Affiche la liste complète des modules de toutes les collections installées, avec une description courte. Combine avec grep pour filtrer :

Fenêtre de terminal
ansible-doc -l | grep -i firewall
ansible.posix.firewalld Manage arbitrary ports/services with firewalld
community.general.ufw Manage firewall with UFW
community.general.iptables_state Save iptables state
Fenêtre de terminal
ansible-doc ansible.posix.firewalld

Affiche : description, paramètres acceptés, valeurs par défaut, exemples d’utilisation, options de retour. Disponible hors-ligne sans connexion Internet.

Fenêtre de terminal
ansible-doc ansible.posix.firewalld --snippet

Affiche un squelette YAML prêt à coller dans votre playbook.

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 :

Fenêtre de terminal
ansible-galaxy collection install -r requirements.yml

Sans pin de version, vous tombez sur la dernière publiée — risque de régression silencieuse si une collection introduit un breaking change.

  • ansible.builtin : livrée avec ansible-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.yml versionne les collections pour la reproductibilité (CI, équipe).

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn