C’est une des questions les plus fréquentes dans les équipes DevOps. La réponse courte : ils ne font pas la même chose. La réponse longue : ils sont complémentaires et la plupart des organisations sérieuses utilisent les deux.
Ce que fait Terraform, ce que fait Ansible
Terraform est un outil de provisionnement d’infrastructure. Il crée, modifie et détruit des ressources cloud (instances EC2, VPCs, buckets S3, bases RDS, clusters EKS) et des ressources réseau physiques. Il parle aux APIs des clouds et maintient un state de ce qui existe.
Ansible est un outil de gestion de configuration. Il configure des systèmes qui existent déjà — installe des packages, déploie du code, gère des fichiers de configuration, exécute des commandes. Il ne crée pas d’infrastructure.
Terraform crée le serveur EC2.
Ansible installe nginx sur ce serveur.
Les forces de Terraform
Idempotence déclarative — vous décrivez l’état désiré, Terraform calcule ce qu’il faut créer/modifier/supprimer pour y arriver. terraform apply deux fois produit le même résultat.
State et planification — le terraform plan montre exactement ce qui va changer avant de l’appliquer. Sur une infrastructure de production, c’est essentiel.
Écosystème providers — AWS, Azure, GCP, Kubernetes, Datadog, Cloudflare, GitHub… Plus de 3000 providers sur le Terraform Registry.
Dépendances explicites — Terraform comprend que le Security Group doit exister avant l’instance EC2 et gère l’ordre automatiquement.
Les forces d’Ansible
Agentless — pas de daemon à installer sur les machines cibles. Ansible communique via SSH (Linux) ou WinRM (Windows).
Courbe d’apprentissage douce — du YAML lisible. Une équipe peut écrire son premier playbook fonctionnel en quelques heures.
Excellent pour les tâches ad-hoc — ansible all -m command -a "systemctl status nginx" pour vérifier l’état de nginx sur 50 serveurs en parallèle.
Configuration de l’OS — gestion des packages, services, users, crons, logrotate — tout ce qui est au-dessus de l’hyperviseur.
Ce que chacun fait mal
Terraform est mauvais pour : les tâches OS post-provisionnement, les déploiements applicatifs, tout ce qui nécessite une logique conditionnelle complexe ou des boucles sophistiquées.
Ansible est mauvais pour : créer des ressources cloud (possible mais verbeux et sans state), gérer des dépendances entre ressources, rollback automatique sur erreur.
Le combo gagnant
terraform apply # crée l'infra (VPC, EC2, RDS...)
↓
ansible-playbook provision.yml # configure les serveurs (packages, users, nginx...)
↓
ansible-playbook deploy.yml # déploie l'application
Terraform et Ansible sont souvent appelés depuis le même pipeline CI/CD — Terraform d’abord, puis Ansible sur les ressources créées.
Et en 2026 : Pulumi, OpenTofu ?
OpenTofu est le fork open source de Terraform depuis que HashiCorp a changé sa licence en BSL en 2023. Compatible avec Terraform, activement maintenu par la communauté. Si votre organisation est sensible aux licences, c’est une alternative sérieuse.
Pulumi permet d’écrire l’infrastructure en Python, TypeScript, Go ou Java au lieu de HCL. Adapté aux équipes de développeurs qui veulent utiliser les mêmes langages et outils que pour le code applicatif.
Nos formations Terraform et Ansible couvrent les deux outils avec des ateliers pratiques sur des environnements cloud réels.