
Cette section sert à passer du "je lance Terraform" au "je comprends ce que Terraform sait vraiment de mon infrastructure". Le state n'est pas un simple fichier annexe : c'est la mémoire opérationnelle qui permet à Terraform de calculer un plan, de détecter une dérive, d'importer une ressource existante et de coordonner le travail en équipe. Dès qu'il est mal protégé ou mal compris, les erreurs deviennent coûteuses.
Cette section reprend le sujet dans l'ordre utile : comprendre ce qu'est le state, apprendre à le stocker correctement avec un backend distant, savoir le verrouiller et le sauvegarder, puis manipuler et diagnostiquer les ressources quand la réalité ne correspond plus au code. L'objectif n'est pas de vous transformer en expert du JSON du state, mais de vous donner un cadre fiable pour éviter les opérations dangereuses et intervenir proprement quand un projet Terraform dérive.
Le socle Terraform à garder sous la main
Section intitulée « Le socle Terraform à garder sous la main »Si vous bloquez encore sur le workflow ou sur ce qu'est réellement une ressource Terraform, revenez d'abord à ces pages. Le state ne s'apprend pas isolément : il prend sens quand on comprend comment Terraform exécute init, plan et apply.
Pourquoi cette section existe
Section intitulée « Pourquoi cette section existe »Quand on découvre Terraform, on comprend assez vite comment écrire un bloc resource. Ce qui reste flou, en revanche, c'est ce que Terraform mémorise après l'apply, où cette mémoire est stockée, et pourquoi une simple erreur sur le state peut provoquer des recréations inattendues ou bloquer une équipe entière.
Cette section existe pour éviter ces faux diagnostics. Elle vous aide à distinguer quatre sujets que les débutants mélangent souvent : le state lui-même, le backend qui le stocke, le verrouillage qui protège les écritures concurrentes, et les commandes terraform state qui servent à inspecter ou réparer une situation donnée.
Le bon ordre pour apprendre le state Terraform
Section intitulée « Le bon ordre pour apprendre le state Terraform »Si vous hésitez sur l'ordre, retenez ce parcours simple :
- comprendre ce qu'est le state et ce qu'il contient réellement ;
- apprendre à le protéger avec un backend, du verrouillage et des sauvegardes ;
- savoir l'inspecter et le manipuler sans toucher à l'infrastructure réelle ;
- utiliser ces outils pour diagnostiquer une dérive ou rattacher une ressource existante.
1. Comprendre la mémoire de Terraform
Section intitulée « 1. Comprendre la mémoire de Terraform »Avant de manipuler le state, il faut savoir ce qu'il représente réellement, et l'image de la « photographie de l'infrastructure » induit en erreur. La documentation de HashiCorp lui donne trois rôles, et aucun n'est celui d'un inventaire fidèle du fournisseur :
- une correspondance entre chaque ressource du code et son identifiant réel, sans quoi Terraform ne saurait pas quelle machine correspond à quel bloc ;
- des métadonnées, au premier rang desquelles les dépendances, qu'il conserve pour savoir dans quel ordre détruire ce que vous retirez du code ;
- un cache des attributs, présenté par l'amont comme « the most optional
feature », qui évite d'interroger chaque ressource à chaque
plan.
La conséquence pratique est la bonne façon de s'en souvenir : ce cache peut être périmé. Le state dit ce que Terraform croit savoir, pas ce que le fournisseur contient à l'instant présent. C'est précisément l'écart que le drift mesure.
2. Protéger le state avant de travailler en équipe
Section intitulée « 2. Protéger le state avant de travailler en équipe »Une fois le rôle du state compris, la priorité devient sa protection. C'est ici que les backends distants, le verrouillage et les sauvegardes prennent tout leur sens.
3. Inspecter et manipuler le state proprement
Section intitulée « 3. Inspecter et manipuler le state proprement »Les commandes terraform state ne servent pas à bricoler au hasard. Elles permettent d'inspecter précisément ce que Terraform croit vrai, puis d'ajuster ce lien quand l'adresse d'une ressource change ou qu'une ressource doit sortir du suivi.
4. Diagnostiquer les écarts et réparer une situation réelle
Section intitulée « 4. Diagnostiquer les écarts et réparer une situation réelle »Quand l'infrastructure dérive ou qu'une ressource existe déjà hors du state, il faut savoir lire les signaux, importer proprement et automatiser les vérifications utiles.
Choisir votre point d'entrée
Section intitulée « Choisir votre point d'entrée »| Votre besoin réel | Guide recommandé |
|---|---|
| Vous ne comprenez pas encore à quoi sert le state | Comprendre le state |
| Vous travaillez seul aujourd'hui mais voulez préparer le travail en équipe | Backends Terraform puis Verrouillage du state |
| Vous voulez sécuriser une opération sensible sur le state | Sauvegarder et restaurer |
| Vous cherchez une ressource précise dans le state | terraform state list puis terraform state show |
| Vous devez renommer ou déplacer une ressource sans la recréer | terraform state mv |
| Vous devez sortir une ressource du suivi Terraform | terraform state rm |
| Vous devez léguer des ressources à une autre équipe, en le traçant dans le code | Le bloc removed |
| Vous suspectez du drift ou devez rattacher une ressource existante | Diagnostiquer le state |
Si vous avez parcouru cette section dans l'ordre, vous avez maintenant assez de matière pour vérifier que vous savez protéger un state, lire son contenu et intervenir sans confondre suivi Terraform et infrastructure réelle. Le quiz de section sert précisément à valider ce socle avant de passer à l'organisation des environnements ou à la modularisation.
À retenir
Section intitulée « À retenir »- Le state est la mémoire opérationnelle de Terraform, pas un simple fichier secondaire.
- Ce n'est pas une photographie de votre infrastructure : une correspondance code vers identifiants réels, des métadonnées de dépendances pour l'ordre de destruction, et un cache d'attributs qui peut être périmé. Le state dit ce que Terraform croit savoir ; l'écart avec le fournisseur s'appelle le drift.
- Le backend décide où le state est stocké ; le verrouillage protège ce state contre les écritures concurrentes.
terraform.tfstate.backupn'est qu'un filet immédiat : il ne garde que l'état d'avant la dernière opération. Sur un backend distant versionné, l'historique du backend tient lieu de sauvegarde.- Ce qui reste indispensable est une sauvegarde explicite avant toute chirurgie du state :
state rm,state mvouimport. - Les commandes
state list,show,mv,rmservent à inspecter et corriger le lien entre code et réalité sans modifier directement l'infrastructure. - L'import et la détection de drift permettent de réconcilier Terraform avec une infrastructure qui a bougé hors du code.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Les backends Terraform : Le guide prioritaire pour sortir du state local et préparer le travail en équipe.
- Verrouillage du state : Le mécanisme qui empêche deux apply simultanés de corrompre le même fichier.
- Diagnostiquer le state Terraform : La méthode face à une dérive, un import ou un décalage entre code et infrastructure.