Le state (.tfstate) est le fichier qui mappe vos ressources Terraform aux ressources réelles de l’infrastructure. C’est la source de vérité de Terraform.
Notes détaillées
| Note | Contenu |
|---|---|
| terraform state | Commandes : list, show, rm, mv, replace-provider, force-unlock |
| terraform import | Associer une ressource existante au state |
| terraform state pull et push | Télécharger/envoyer le state manuellement, migration de backend |
| Backend — Configuration et option | Configurer le backend, option -backend=false |
| terraform refresh | ⚠️ Synchroniser le state avec l’infra réelle (déconseillé → -refresh-only) |
Où est stocké le state ?
Local (défaut) :
./terraform.tfstate
Remote (recommandé en équipe) :
S3 + DynamoDB (AWS)
GCS (GCP)
Azure Blob Storage
Terraform Cloud
HTTP backend
Configuration d’un backend S3
terraform {
backend "s3" {
bucket = "mon-terraform-state"
key = "prod/terraform.tfstate"
region = "eu-west-1"
dynamodb_table = "terraform-locks" ← verrou distribué
encrypt = true
}
}Précautions
⚠️ Ne jamais committer terraform.tfstate dans Git
(contient des secrets : passwords, tokens, clés)
✅ Ajouter au .gitignore :
*.tfstate
*.tfstate.backup
.terraform/
En relation avec
- Synthèse Terraform — hub principal
- Cycle de vie — Vue d’ensemble — les commandes qui modifient le state
- Workspaces — Vue d’ensemble — chaque workspace a son propre state