Installer Ansible sur Rocky Linux, l'héritier de CentOS 7

Ansible ne s'installe que sur la machine de contrôle : aucun agent sur les serveurs gérés. Le vrai choix est entre le paquet de la distribution et pip, et il dépend de la version de Python.

Schéma : le nœud de contrôle ctl-ansible01 (Rocky Linux 10) pilote en SSH, sans agent, les nœuds gérés srv-web01 (Rocky Linux 10) et srv-web02 (Debian 13)
Illustration schématique — ne reproduit aucune interface réelle.

L'ancienne version de cette page installait Ansible sur CentOS 7 avec yum et le dépôt EPEL. CentOS Linux 7 est en fin de vie depuis le 30 juin 2024, selon le projet CentOS : plus aucune mise à jour, de sécurité ou autre. La procédure ci-dessous vise donc la famille Red Hat Enterprise Linux (RHEL) actuelle, avec Rocky Linux 10 comme exemple ; elle s'applique à AlmaLinux et à RHEL. Rocky Linux 10 bénéficie du support général jusqu'au 31 mai 2030, selon la documentation Rocky Linux.

yum reste un alias sur ces systèmes, mais le gestionnaire de paquets est dnf. Faites l'essai sur une VM de lab, et prenez un instantané avant de modifier une machine de contrôle déjà en service.

Ce qu'il faut installer, et où

Ansible est un outil sans agent. On l'installe sur un seul hôte, le nœud de contrôle (control node), qui pilote les nœuds gérés (managed nodes) par SSH, par PowerShell Remoting ou par d'autres transports. Il n'y a ni base de données ni démon à faire tourner.

RôleCe qui est requis
Nœud de contrôleun système de type UNIX avec Python ; Windows seulement via WSL
Nœud géré LinuxPython, et un compte joignable en SSH avec un shell POSIX
Nœud géré Windowsvoir la page dédiée à Windows

Deux paquets existent. ansible-core est le langage et le moteur, avec un jeu réduit de modules intégrés. ansible est le paquet « piles incluses », qui ajoute une sélection de collections maintenue par la communauté. Pour débuter, prenez ansible.

Topologie du lab

HôteRôleInterfaceAdresse
ctl-ansible01Rocky Linux 10, nœud de contrôleens18192.168.10.40/24
srv-web01Rocky Linux 10, nœud géréens18192.168.10.41/24
srv-web02Debian 13, nœud géréens18192.168.10.42/24

Le point qui bloque : la version de Python

Chaque version d'ansible-core exige une plage de versions de Python sur le nœud de contrôle. La matrice de support d'Ansible indique Python 3.12 à 3.14 pour les branches 2.20 et 2.21, et 3.11 à 3.13 pour la 2.19. Sur les nœuds gérés, la plage est plus large.

Conséquence pratique :

Méthode 1 : pip, la méthode maintenue par Ansible

La documentation Ansible précise qu'elle ne maintient que les instructions d'installation par pip ; les paquets des distributions sont maintenus par leurs communautés. C'est donc la méthode qui donne la version la plus récente.

Vérifiez que pip est présent pour votre Python :

python3 -m pip -V

S'il manque, installez le paquet de la distribution, puis Ansible pour l'utilisateur courant :

sudo dnf install python3-pip
python3 -m pip install --user ansible

Pour le paquet minimal, remplacez ansible par ansible-core. La mise à jour se fait avec la même commande et --upgrade :

python3 -m pip install --upgrade --user ansible

La documentation propose aussi pipx, utile quand le système refuse les installations pip hors de son gestionnaire de paquets : pipx install --include-deps ansible.

Méthode 2 : dnf et le dépôt EPEL

Sur Rocky Linux, AlmaLinux ou CentOS Stream, le paquet ansible vient du dépôt communautaire EPEL (Extra Packages for Enterprise Linux). C'est l'équivalent moderne de l'ancien « ansible yum » de CentOS 7.

sudo dnf install epel-release
sudo dnf install ansible

La documentation Rocky Linux prévient que la version d'EPEL peut être en retard sur la version courante d'Ansible. L'avantage : les mises à jour passent par dnf, avec le reste du système. L'inconvénient : vous ne choisissez pas la version.

Pip ou dnf : comment choisir

Critèrepipdnf + EPEL
Versionla plus récentecelle du dépôt, parfois en retard
Mises à jourpip install --upgradednf upgrade
Contrainte Pythondépend de la version installéegérée par le paquet
Maintenu parle projet Ansiblela communauté EPEL

Ne mélangez pas les deux sur la même machine : désinstallez la version EPEL avant de passer à pip, comme le recommande la documentation Rocky Linux.

Vérifier l'installation

La commande suivante affiche la version d'ansible-core installée ; ansible-community --version donne celle du paquet ansible :

ansible --version
ansible-community --version

Puis un premier test réel. Ajoutez votre clé SSH publique au fichier authorized_keys de chaque nœud géré, créez un inventaire inventory.ini et lancez le module ping :

ssh-copy-id admin@192.168.10.41
ssh-copy-id admin@192.168.10.42
[web]
192.168.10.41
192.168.10.42
ansible-inventory -i inventory.ini --list
ansible web -m ping -i inventory.ini -u admin

Chaque hôte doit répondre SUCCESS avec "ping": "pong". Le module ping n'est pas un ping ICMP : il vérifie que la connexion fonctionne et qu'un Python utilisable est configuré sur le nœud. Pour une cible Windows, c'est win_ping.

Les erreurs fréquentes

Et ensuite

Une fois Ansible en place, les mêmes playbooks peuvent piloter des serveurs Windows : voyez Ansible avec WinRM pour Windows Server. Pour lancer ces playbooks depuis une interface web, avec un historique et des droits par équipe, deux ordonnanceurs sont présentés : Rundeck sur Rocky Linux et l'ordonnanceur CTFreak. L'ensemble est rangé dans la rubrique automatisation de l'administration système.

Questions fréquentes

Peut-on installer Ansible sur Windows ?

Pas comme nœud de contrôle natif. La documentation Ansible indique que Windows sans WSL n'est pas pris en charge ; il faut une distribution Linux sous WSL. En revanche, Windows peut être un nœud géré.

Quelle différence entre ansible et ansible-core ?

ansible-core contient le langage, le moteur et un petit jeu de modules intégrés. ansible ajoute une sélection de collections communautaires. Avec ansible-core, vous installez vous-même les collections dont vous avez besoin.

Faut-il installer Ansible sur les serveurs gérés ?

Non. Les nœuds gérés n'ont besoin que de Python, pour exécuter le code Python que génère Ansible, et d'un compte joignable en SSH.

La commande yum install ansible fonctionne-t-elle encore ?

Sur Rocky Linux et RHEL, yum renvoie vers dnf, donc la commande fonctionne si le dépôt EPEL est activé. Sur CentOS 7, en fin de vie depuis juin 2024, il ne faut plus construire de nouvelle machine de contrôle.

Comment mettre à jour Ansible ?

Avec pip, relancez l'installation avec --upgrade. Avec EPEL, dnf upgrade met à jour le paquet comme les autres. Consultez la matrice de support d'ansible-core pour savoir quelles branches reçoivent encore des correctifs.