Le State Terraform 18 min de lecture

Comprendre le state

Qu'est-ce que le state ?

Le state est un fichier JSON (terraform.tfstate) qui enregistre la correspondance entre vos ressources Terraform et les objets reels dans le cloud.

Pourquoi un state ?

  • Mapping — Lie le code aux ressources reelles
  • Performance — Evite d'interroger le cloud a chaque plan
  • Dependances — Connait l'ordre de creation/destruction

State local vs remote

# Par defaut : state local (terraform.tfstate)
# Probleme : pas adapte au travail en equipe

# State remote avec S3 + DynamoDB (verrou)
terraform {
  backend "s3" {
    bucket         = "mon-bucket-tfstate"
    key            = "prod/terraform.tfstate"
    region         = "eu-west-3"
    dynamodb_table = "terraform-locks"
    encrypt        = true
  }
}

Commandes utiles

terraform state list              # Lister les ressources gerees
terraform state show aws_instance.web  # Details d'une ressource
terraform state mv                # Renommer une ressource
terraform state rm                # Retirer du state (sans detruire)
Regle d'or : Ne modifiez jamais le fichier terraform.tfstate a la main. Utilisez les commandes terraform state.