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.
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ôle | Ce qui est requis |
|---|---|
| Nœud de contrôle | un système de type UNIX avec Python ; Windows seulement via WSL |
| Nœud géré Linux | Python, et un compte joignable en SSH avec un shell POSIX |
| Nœud géré Windows | voir 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ôte | Rôle | Interface | Adresse |
|---|---|---|---|
| ctl-ansible01 | Rocky Linux 10, nœud de contrôle | ens18 | 192.168.10.40/24 |
| srv-web01 | Rocky Linux 10, nœud géré | ens18 | 192.168.10.41/24 |
| srv-web02 | Debian 13, nœud géré | ens18 | 192.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 :
- Rocky Linux 10 fournit Python 3.12 par défaut : le
ansiblerécent de pip s'installe directement. - Rocky Linux 9 fournit Python 3.9 par défaut, trop ancien pour les branches actuelles. Installez d'abord un Python plus récent proposé par le dépôt AppStream, puis utilisez-le pour pip.
- Le paquet
ansible-corelivré par la distribution suit le cycle de vie de la distribution, pas celui d'Ansible. Comparez sa version à la matrice avant de le choisir.
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ère | pip | dnf + EPEL |
|---|---|---|
| Version | la plus récente | celle du dépôt, parfois en retard |
| Mises à jour | pip install --upgrade | dnf upgrade |
| Contrainte Python | dépend de la version installée | gérée par le paquet |
| Maintenu par | le projet Ansible | la 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
ansible: command not foundaprès pip : l'installation--userplace les commandes dans le dossier du site utilisateur de Python (~/.local/binsous Linux), qui doit figurer dans lePATH.- Échec sur un nœud sans Python : le module a besoin de Python sur la cible, sauf exceptions comme les modules réseau.
- Version d'ansible-core plus ancienne que prévu : pip a utilisé un Python trop vieux et installé la dernière version compatible ; vérifiez avec
ansible --version.
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.