Aller au contenu principal

2-01 Qu'est-ce que l'état Terraform ?

Objectifs

  • Comprendre le fonctionnement et les limitations de l'état Terraform

Qu'est ce que l'état de Terraform (state file) ?

Voici ce que contient le fichier .terraform/terraform.tfstate après une exécution d'exemple simple.

{
"version": 4,
"terraform_version": "1.2.3",
"serial": 1,
"lineage": "86545604-4aa5-7463-e9e8-a2a221de98d2",
"outputs": {},
"resources": [
{
"mode": "managed",
"type": "aws_instance",
"name": "example",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": [
{
"schema_version": 1,
"attributes": {
"ami": "ami-0fb653ca2d3203ac1",
"availability_zone": "us-east-2b",
"id": "i-843875430bc4bbe5b",
"instance_state": "running",
"instance_type": "t2.micro",
"(...)": "(truncated)"
}
}
]
}
]
}

En utilisant ce format JSON, Terraform sait qu'une ressource avec le type aws_instance et le nom example correspond à une instance EC2 dans votre compte AWS avec l'ID i-843875430bc4bbe5b.

Chaque fois que vous exécutez Terraform, il peut récupérer le dernier statut de cette instance EC2 auprès d'AWS et le comparer à ce qui se trouve dans vos configurations Terraform pour déterminer les modifications à appliquer.

En d'autres termes, la sortie de la commande plan est un diff entre le code sur votre ordinateur et l'infrastructure déployée dans le monde réel, comme découvert via les ID dans le fichier d'état.


Attention, seul Terraform doit manipuler ce fichier !

Le format de fichier d'état est une API privée destinée uniquement à un usage interne dans Terraform. Vous ne devez jamais modifier les fichiers d'état Terraform à la main ou écrire du code qui les lit directement.

Seules les commandes terraform import ou terraform state sont à utiliser pour manipuler ce fichier depuis l'extérieur de Terraform.


Rappel des objectifs

  • Comprendre le fonctionnement et les limitations de l'état Terraform