Ansible est un outil d'automatisation sans agent qui configure des serveurs via SSH. Ce guide couvre l'installation d'Ansible sur RHEL et CentOS Stream, avec pip et pipx, et dans un conteneur, puis l'inventaire et le premier playbook. Les serveurs Kimsufi démarrent à 9,99 €/mois.
Points clés à retenir
- Ansible est sans agent. Le nœud de contrôle a besoin de Python et de SSH ; le serveur cible, seulement d'un interpréteur Python.
- ansible-core est le moteur. Le paquet ansible complet ajoute les collections Ansible sélectionnées.
- Utilisez le paquet système, ou pipx install ansible pour la version la plus récente.
- Un inventory.ini plus un playbook.yml, et l'installation fonctionne.
- N'exécutez jamais de playbooks en root. Donnez plutôt à un utilisateur non privilégié sudo sur le serveur cible.
Pourquoi choisir Ansible pour les serveurs dédiés
Aucun agent ne tourne sur le serveur géré. Rien à déployer, rien à tenir à jour sur chaque serveur que Ansible gère.
Idempotence. Un playbook décrit l'état que vous voulez, pas les étapes. Exécutez-le deux fois ; la seconde passe ne change rien.
Un serveur Ansible, plusieurs machines. Un serveur Ansible atteint chaque machine que vous exploitez via SSH, donc provisionner dix serveurs coûte ce qu'en coûte un. Pointez le serveur Ansible vers une nouvelle machine et elle est gérée le jour même.
Configuration lisible. Les playbooks sont en YAML. Un nouvel administrateur lit site.yml et sait ce que fait l'application. Un script shell ne vous dit rien.
Notre guide de maintenance d'un serveur dédié couvre le travail de routine que l'automatisation Ansible remplace.
Nœud de contrôle et nœud géré : ce qu'il faut
| Rôle | Exigence |
|---|---|
| Nœud de contrôle | Python 3.11 ou plus récent, n'importe quel Linux ou macOS. Pas Windows. |
| Nœud géré | Python 3.8 ou plus récent, SSH, sudo pour les tâches privilégiées |
| Réseau | SSH sortant sur le port 22 depuis le serveur Ansible |
Ces trois exigences constituent la liste complète. Les machines Windows peuvent être des nœuds gérés mais jamais la machine de contrôle depuis laquelle Ansible s'exécute : le support Windows d'Ansible passe par WinRM, pas par la connexion Python standard.
Si le serveur Ansible est une machine neuve, notre guide comment héberger un serveur dédié couvre l'installation de base de ce serveur Ansible.
Choisir le bon paquet Ansible (core ou collection)
Deux paquets portent l'installation d'Ansible : ansible-core pour le moteur, et ansible pour ce moteur plus 40 collections Ansible sélectionnées. Les deux donnent le même jeu de commandes ansible, et les deux utilisent le même format de collection Ansible.
Choisissez le paquet minimal ansible-core quand vous savez quelle collection Ansible vous faut et que vous la tirerez avec ansible-galaxy. Le paquet minimal ansible-core s'installe plus vite.
Choisissez le paquet ansible complet pour une première installation. Chaque module courant y est, donc rien ne bloque votre premier playbook.
Le paquet ansible-core livre un jeu de modules et fournit ansible, ansible-doc et sept autres commandes. Le paquet ansible complet en livre des milliers de plus. Les mainteneurs des distributions empaquettent les deux, généralement une version derrière ce que le mainteneur amont a étiqueté ; la plupart des dépôts l'embarquent par défaut. L'un ou l'autre paquet ansible convient ici.
Installer Ansible via DNF/YUM sur RHEL/CentOS
Ansible se trouve dans le dépôt AppStream. Installez Ansible avec une commande :
sudo dnf install ansible-corePour le paquet complet, activez d'abord EPEL, puis installez les paquets Ansible depuis celui-ci :
sudo dnf install epel-release
sudo dnf install ansibleEPEL est maintenu par la communauté, donc sa version suit l'amont. La contrepartie, c'est qu'un mainteneur d'EPEL, et non Red Hat, répond de ce paquet ansible. Suivez les instructions du mainteneur de ce dépôt en cas de conflit de dépendance.
D'autres distributions suivent les mêmes instructions avec un autre gestionnaire de paquets : apt install ansible sur Debian et Ubuntu, pacman -S ansible sur Arch Linux. Arch porte les paquets les plus récents, c'est pourquoi Arch Linux est courant sur les nœuds de contrôle et pourquoi ses utilisateurs ont rarement besoin de pip.
Installer Ansible avec pip ou pipx
Les paquets système ont du retard. Pour la version d'Ansible la plus récente, installez dans un environnement Python isolé.
pipx
pipx garde chaque application dans son propre environnement virtuel et place les commandes dans votre PATH. C'est la voie recommandée.
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install --include-deps ansiblePuis gérez-le via pipx :
pipx upgrade --include-injected ansible
pipx inject ansible argcomplete
pipx listPour le moteur seul, installez le paquet ansible-core avec pipx ; pour le retirer, pipx uninstall ansible. Comme pipx isole l'application, une mise à niveau ratée ne touche jamais votre Python système.
pip
Si pipx est indisponible, pip avec l'option user est la solution de repli. Chaque commande pip ci-dessous écrit dans votre répertoire personnel :
pip install --user ansible
pip install --user argcomplete
pip install --user ansible-lint
pip install --user --upgrade ansible
pip cache purge
pip install --user ansible==11.*
pip show ansibleUtilisez python3 -m pip quand pip n'est pas dans votre PATH. Les paquets arrivent dans ~/.local/bin, ajoutez donc ce chemin. Épinglez une version quand un playbook a besoin d'un comportement de module précis.
N'exécutez jamais pip en root sur un serveur qui utilise Python pour ses propres outils. Le guide d'installation Ansible amont donne la même instruction.
Installer Ansible dans des conteneurs Docker ou Podman
Un conteneur donne une version épinglée sans modifier l'hôte, ce qui convient à la CI et au déploiement applicatif ponctuel :
podman run --rm -it -v "$PWD:/work:Z" \
-v "$HOME/.ssh:/root/.ssh:ro" -w /work \
docker.io/alpine/ansible:latest \
ansible-playbook -i inventory.ini playbook.ymlRemplacez podman par docker si c'est votre runtime. Montez le répertoire de l'application en lecture-écriture, la clé SSH en lecture seule, et n'intégrez jamais une clé dans une image.
Vérifier l'installation et la version
Trois commandes confirment une installation Ansible fonctionnelle :
ansible --version
ansible-config dump --only-changed
ansible localhost -m pingLa sortie montre la version, le fichier de config en usage, le chemin de recherche des modules et l'interpréteur Python. Si le module ping répond pong, l'installation est saine. Rien d'autre n'a besoin de répondre.
Complétion shell
Ansible livre la complétion bash par argcomplete. Enregistrez chaque commande ansible une fois :
eval "$(register-python-argcomplete ansible)"
eval "$(register-python-argcomplete ansible-config)"
eval "$(register-python-argcomplete ansible-console)"
eval "$(register-python-argcomplete ansible-doc)"
eval "$(register-python-argcomplete ansible-galaxy)"
eval "$(register-python-argcomplete ansible-inventory)"
eval "$(register-python-argcomplete ansible-playbook)"
eval "$(register-python-argcomplete ansible-pull)"
eval "$(register-python-argcomplete ansible-vault)"Mettez ces lignes dans votre profil bash pour rendre le réglage permanent. La complétion couvre les drapeaux et les noms de modules de chaque commande ansible.
Configuration de base : fichier inventory et accès SSH
L'inventaire liste ce que Ansible gère. Créez inventory.ini :
[webservers]
web1 ansible_host=203.0.113.10
web2 ansible_host=203.0.113.11
[webservers:vars]
ansible_user=deploy
ansible_python_interpreter=/usr/bin/python3Copiez la clé de l'utilisateur d'installation auquel Ansible se connecte sur chaque serveur hôte, puis confirmez :
ssh-copy-id deploy@203.0.113.10
ansible all -i inventory.ini -m pingGardez les réglages du projet dans un ansible.cfg à côté de ce fichier, y compris le chemin de l'inventaire, pour que les commandes suivantes sur le serveur applicatif n'aient besoin d'aucun drapeau. Le port 22 doit être joignable, ce que couvre notre guide de la configuration du pare-feu.
Lancer votre premier playbook sur un serveur bare metal
Enregistrez ceci sous playbook.yml :
- name: Base configuration
hosts: webservers
become: true
tasks:
- name: Install nginx
ansible.builtin.package:
name: nginx
state: present
- name: Start and enable the service
ansible.builtin.service:
name: nginx
state: started
enabled: trueExécutez-le, d'abord en simulant :
ansible-playbook playbook.yml --check
ansible-playbook playbook.ymlDeux modules font le travail. À mesure que le playbook grandit, déplacez les tâches dans un playbook role pour que chaque application garde ses tâches et variables. Répétez l'exécution pour automatiser la machine suivante. Servir une application réelle est couvert par notre guide du serveur dédié pour un site web.
Bonnes pratiques de sécurité, d'idempotence et d'automatisation
Utilisez un utilisateur d'installation dédié. Donnez-lui sudo, désactivez la connexion SSH root, utilisez uniquement des clés. Pour Ansible, sudo sur le serveur cible est la frontière qui compte, et un administrateur qui la saute fait tout en root.
Chiffrez les secrets applicatifs avec Ansible Vault. ansible-vault encrypt group_vars/all/secrets.yml garde les identifiants de l'application hors du gestionnaire de versions.
Faites confiance d'abord à --check. Une tâche qui signale un changement à chaque exécution n'est pas idempotente, généralement parce qu'elle appelle une commande shell, pas un module.
Épinglez vos collections. Un requirements.yml avec des versions explicites rend le déploiement reproductible des mois plus tard. Les mainteneurs de paquets avancent plus vite que votre cycle de publication.
L'automatisation ne remplace pas la récupération. Notre guide des sauvegardes couvre cela, et le même playbook construit un serveur de jeu dédié.
Conclusion
Installer Ansible prend une commande. Ce qui compte, c'est la configuration qui suit : un inventaire qui reflète la réalité, un utilisateur deploy avec sudo circonscrit, des secrets dans Vault, et des playbooks qui passent --check proprement. Un serveur Ansible gère alors l'ensemble du parc.
Installez votre nœud de contrôle dès aujourd'hui. La gamme Kimsufi démarre à 9,99 €/mois, SYS à 29,99 €/mois et Rise à 64,99 €/mois, avec un accès root complet et un trafic illimité.
FAQ
Les instructions ci-dessus couvrent l'installation ; les instructions ci-dessous répondent à la suite.
Ansible est-il encore utilisé en 2026 ?
Oui, largement. Il reste l'outil d'automatisation par défaut pour la gestion de configuration sur des parcs Linux, et Red Hat le livre dans RHEL. L'écosystème est passé aux collections ; l'outil, lui, n'a pas changé.
Qu'est-ce qui remplace Ansible ?
Rien ne l'a remplacé. Terraform provisionne l'infrastructure et Ansible la configure, donc la plupart des équipes utilisent les deux. Les équipes 100 % conteneurs répondent au même besoin avec des manifests Kubernetes.
La NASA utilise-t-elle Ansible ?
La NASA a publié un matériau d'étude de cas sur l'usage d'Ansible à travers son parc d'applications web après une migration vers le cloud.
Comment installer un nœud de contrôle Ansible sur un serveur dédié ?
Commencez par ansible-core, créez un utilisateur non privilégié avec sudo, ajoutez votre clé, écrivez inventory.ini, puis pinguez un serveur cible et vérifiez qu'il répond.
Quels sont les prérequis OS minimum pour Ansible sur un serveur bare metal ?
Tout Linux actuel avec Python 3.11 ou plus récent. Les nœuds gérés ont besoin de Python 3.8 plus SSH. Aucun agent n'est requis sur le serveur cible.
Puis-je installer Ansible avec pipx plutôt qu'avec le gestionnaire de paquets du système ?
Oui, et souvent c'est mieux. pipx donne à un administrateur la version la plus récente dans un environnement isolé ; le paquet de la distribution donne ce que ses mainteneurs ont livré. La plupart des administrateurs gardent les deux : pip pour les outils, pipx pour Ansible.


