7.0 KiB
title: Ansible created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, automation, devops, it-automation, configuration-management, python, yaml] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Automation, https://github.com/ansible/ansible]
🛠️ Ansible
L'étalon-or de l'automatisation IT — provisionnez, configurez et orchestrez vos serveurs en déclarant l'état deseado dans du YAML lisible. Sans agent, sans état centralisé, sans prise de tête.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | ansible.com |
| GitHub | ansible/ansible |
| License | GPL-3.0 |
| Langage | Python (moteur) / YAML (playbooks) |
| Étoiles GitHub | 24 143 ⭐ |
| Dernière MAJ | 2026-06-05 |
| Catégorie | cat-automation |
📝 Description
Ansible est l'outil d'automatisation IT agentless le plus déployé au monde, édité par Red Hat et utilisé par des organisations de toutes tailles — du homelab à la NASA. Sa philosophie est radicale : pas d'agent à installer sur les hôtes cibles (on se connecte juste en SSH ou WinRM) et une syntaxe déclarative en YAML qui décrit l'état désiré plutôt que les étapes pour y arriver. Résultat : des playbooks lisibles par des humains, versionnables dans Git, et applicables à 1 ou 10 000 machines.
Le moteur d'Ansible est écrit en Python et fonctionne en mode push : depuis un nœud de contrôle (souvent un laptop ou un serveur dédié), on lance un playbook qui se connecte aux cibles, copie des modules Python éphémères, les exécute, puis les nettoie. L'idempotence est au cœur du système : exécuter 10 fois le même playbook ne change rien à partir de la deuxième. Plus de 7 500 modules officiels couvrent l'essentiel (paquets, fichiers, services, cloud AWS/GCP/Azure, Docker, K8s, bases de données, réseau Cisco/Juniper, etc.).
Pour les déploiements d'envergure, Ansible s'appuie sur Ansible AWX (la version open source d'Ansible Tower) ou sur des alternatives communautaires comme app-semaphore-ui. La Ansible Galaxy héberge des milliers de rôles réutilisables, et la Ansible Community produit une documentation parmi les meilleures de l'open source.
Cas d'usage typiques :
- Déployer et configurer 50 serveurs Ubuntu en une commande
- Appliquer un patch de sécurité sur 300 machines en 5 minutes
- Provisionner une infrastructure complète AWS/GCP (VPC, sous-réseaux, instances, SG)
- Orchestrer des rollouts applicatifs (blue/green, canary)
- Industrialiser la configuration réseau (BGP, OSPF, VLAN sur du Cisco)
🚀 Installation
Prérequis
- Python 3.11+ sur le nœud de contrôle (les cibles n'ont besoin que de SSH et Python 2.7+/3.5+)
- Accès SSH aux hôtes cibles avec clé publique
- Linux, macOS ou WSL2 sur Windows
Option 1 : pipx (recommandé, isolé)
sudo apt install -y pipx
pipx ensurepath
pipx install --include-deps ansible
ansible --version
Option 2 : Docker (nœud éphémère)
# docker-compose.yml — nœud de contrôle Ansible jetable
services:
ansible:
image: cytopia/ansible:latest-tools
container_name: ansible-control
restart: "no"
working_dir: /ansible
volumes:
- ./inventories:/ansible/inventories:ro
- ./playbooks:/ansible/playbooks:ro
- ~/.ssh:/root/.ssh:ro # clés SSH du contrôleur
- ansible-cwd:/ansible # état du runner
environment:
ANSIBLE_HOST_KEY_CHECKING: "False"
tty: true
stdin_open: true
volumes:
ansible-cwd:
Utilisation :
docker compose run --rm ansible ansible-playbook -i inventories/prod.yml playbooks/site.yml
Option 3 : Installation native (Ubuntu/Debian)
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install -y ansible
⚙️ Configuration
ansible.cfg: fichier de config par projet (inventaire par défaut, forking, log_path, host_key_checking)- Inventaire (
inventory.yml) : déclarer les hôtes par groupes (webservers, dbservers, [all:vars] pour les variables globales) - Playbooks : fichiers YAML listant les plays (ensembles de tasks sur un groupe d'hôtes)
- Rôles (
roles/) : structurer un playbook complexe en tâches, handlers, templates, vars - Vault :
ansible-vault encrypt group_vars/prod/vault.ymlpour chiffrer les secrets - Collections :
ansible-galaxy collection install community.generalpour étendre les modules
Exemple minimal :
# playbooks/hello.yml
- name: Ping mes serveurs
hosts: webservers
tasks:
- name: Vérifier la connectivité
ansible.builtin.ping:
🔗 Alternatives
Open Source
- app-semaphore-ui — UI web pour piloter Ansible (⭐1,3k)
- Puppet — concurrent historique, modèle client/serveur avec agent
- Chef — Ruby, orienté "recipes" (état déclaratif)
- Salt (SaltStack) — agentless ou agent, plus rapide à grande échelle
- Terraform — complémentaire (infra-as-code déclaratif vs Ansible)
- Bash + SSH en boucle — pour les fans de l'auto-construction artisanale
Propriétaires (ce qu'Ansible remplace)
- Ansible Tower / Red Hat Ansible Automation Platform — 14 000 $/an pour 100 nœuds
- Puppet Enterprise — 100 $/nœud/an
- Chef Automate — sur devis
- CFEngine — très ancien, encore utilisé dans le bancaire
- PowerShell DSC + WinRM — l'équivalent Microsoft natif
🔒 Sécurité
- ⚠️ Ansible = root sur les cibles : un playbook compromis = serveur compromis. Ne jamais exposer le contrôleur Ansible sur Internet
- Utiliser Ansible Vault (
ansible-vault) pour tous les secrets ; ne jamais commiter de mot de passe en clair - Activer SSH key ed25519 plutôt que RSA
- Limiter les utilisateurs sudoers côté cible : créer un
ansibleuser avecNOPASSWDciblé - Audit : logger tous les playbooks dans un repo Git auditable +
ANSIBLE_LOG_PATH=/var/log/ansible.log - Molecule : tester ses rôles dans Docker avant production
- AWX/Semaphore : ajouter RBAC + 2FA si l'équipe est > 2 personnes
📚 Ressources
- Site officiel
- Documentation officielle
- Dépôt GitHub
- Ansible Galaxy — rôles partagés
- Awesome Ansible
- Best Practices
🔗 Pages Liées
- cat-automation — Catégorie Automation
- app-semaphore-ui — UI web pour Ansible
- app-rundeck — Orchestrateur de jobs (parfois comparé à Ansible)
- cat-deployment — Catégorie Déploiement
- recettes-docker-compose — Templates Docker
- securisation-home-lab — Sécurité