Qu'est-ce qu'Ansible ?
Ansible est un outil open-source d'automatisation IT cree par Red Hat. Il permet d'automatiser la configuration des serveurs, le deploiement d'applications, l'orchestration de workflows et la gestion d'infrastructure. Sa particularite principale est d'etre agentless : il ne necessite aucun logiciel installe sur les machines cibles, utilisant uniquement SSH (Linux) ou WinRM (Windows) pour se connecter.
Concepts fondamentaux
L'inventaire definit les machines cibles, organisees en groupes (webservers, databases, production). Les playbooks sont des fichiers YAML decrivant les taches a executer de maniere declarative. Les roles organisent les playbooks en composants reutilisables (role nginx, role postgresql). Les modules sont les unites d'action (apt pour les packages, copy pour les fichiers, template pour Jinja2, service pour les daemons). Les facts sont des informations collectees automatiquement sur les machines cibles (OS, IP, memoire).
Playbooks et idempotence
Les playbooks Ansible sont idempotents : les executer plusieurs fois produit le meme resultat. Si un package est deja installe, Ansible ne fait rien. Si un fichier de configuration est deja correct, il n'est pas modifie. Cette propriete rend Ansible sur a executer en production a tout moment. Les handlers declenchent des actions apres un changement (redemarrer nginx apres modification de la configuration).
Ansible vs Terraform
Ansible et Terraform sont complementaires. Terraform gere l'infrastructure (creer des VM, des reseaux, des bases de donnees) de maniere declarative avec un state file. Ansible configure les serveurs une fois crees (installer des packages, deployer des applications, configurer des services). Terraform pour le "quoi" deployer, Ansible pour le "comment" configurer. Certaines equipes utilisent Ansible pour les deux, mais Terraform excelle dans le provisioning d'infrastructure cloud.
Ansible Galaxy et ecosysteme
Ansible Galaxy est le depot communautaire de roles reutilisables. Plutot que d'ecrire un role nginx ou Docker from scratch, on utilise des roles communautaires testes et maintenus. Ansible Collections regroupent des modules, roles et plugins pour un domaine specifique. AWX (version open-source) et Ansible Automation Platform (Red Hat, payant) ajoutent une interface web, la gestion des credentials, le scheduling et l'audit. Ansible Vault chiffre les secrets (mots de passe, cles) dans les playbooks.