how/state
Что лежит внутри state-файла, зачем там serial и lineage, и почему пароль из HCL в нём оказывается открытым текстом. Развёрнутый JSON по слоям.
State-файл - это частная база данных Terraform про твою инфраструктуру.
Не транзакционная Postgres, а просто JSON, обычно terraform.tfstate.
Зачем он нужен:
aws_s3_bucket.demo) с реальным объектом в облаке
(по id = "linuxlab-3f4a"). Без этого Terraform не знал бы, какой именно бакет он создавал.plan не дёргал облако без нужды.Жми ▶ - пройдём по файлу слой за слоем. Эталон - tf-state.
terraform.tfstate в корне проекта рядом с main.tf. По дефолту -
обычный JSON на диске. После apply в нём появляется запись о каждом
ресурсе. Открываем.
итого
Главное про state:
terraform.tfstate.
Если state поломан или потерян - Terraform теряет связь с реальностью (см. tf-state-import).serial растёт на каждом apply. lineage - UUID, который не меняется
никогда (генерируется при первом создании state). Эти два поля защищают от
конфликтов при remote backend.dependencies записаны в state, а не вычисляются на лету. Если ты сделал
terraform state rm - забыл и про зависимости. Поэтому state rm опасен.Дальше: tf-drift - что бывает, когда state и реальность расходятся.