Terraform permet de décrire une infrastructure cloud sous forme de fichiers HCL versionnés et de la provisionner de façon reproductible. Apprendre Terraform pas à pas, c'est partir d'une ressource unique pour aller jusqu'aux modules réutilisables et au state distant.
Points clés
- Le cycle init, plan, apply
- Le state et son verrouillage
- Variables, outputs et modules
Le cycle init, plan, apply
Le flux Terraform repose sur trois commandes clés : terraform init télécharge les providers déclarés dans le bloc required_providers, terraform plan calcule le diff entre l'état désiré et l'état réel, et terraform apply applique les changements. Faire lire le plan avant chaque apply est la première discipline à enseigner. On insiste sur le fait que le plan est un contrat : ce qui est créé, modifié ou détruit y est explicite.
Le state et son verrouillage
Le fichier terraform.tfstate mémorise la correspondance entre les ressources HCL et les objets réels du cloud. En formation, on montre vite ses limites en local : pas de partage, pas de verrouillage. On bascule alors sur un backend distant comme S3 + DynamoDB ou un backend HTTP GitLab, qui apporte le state lock et évite les apply concurrents destructeurs.
Variables, outputs et modules
Les variables d'entrée (variable) paramètrent un déploiement, les outputs exposent des valeurs comme une IP publique. Le module est l'unité de réutilisation : on factorise un VPC ou un cluster dans un dossier appelé via source. Enseigner les modules tôt évite le copier-coller et prépare aux registres de modules.
En pratique
Scénario. En formation, prévoir un lab de 3 heures sur un provider gratuit (Docker local ou un compte cloud de test). Les apprenants écrivent un main.tf qui crée un conteneur Nginx, exécutent init/plan/apply, puis ajoutent une variable pour le port et un output pour l'URL. Livrable : un dépôt Git avec module réutilisable et state migré vers un backend distant.
Questions fréquentes
Faut-il committer le fichier tfstate ?
Non, jamais en clair dans Git car il peut contenir des secrets. On utilise un backend distant (S3, GCS, backend HTTP) qui gère stockage et verrouillage.
Quelle différence entre Terraform et OpenTofu ?
OpenTofu est un fork open source de Terraform compatible avec le langage HCL, né après le changement de licence de Terraform. Le code HCL reste largement portable entre les deux.
Pour aller plus loin
Pour approfondir : Automatiser avec ansible · Automatiser les mises a jour. Et le reste de nos ressources pour les écoles, OF et formateurs.
Besoin d'un formateur expert ou envie de transmettre ?
tonformateur connecte les écoles et organismes de formation avec des intervenants experts du terrain.
Voir les cours à pourvoir Explorer l'annuaire d'outils →