terraform state rm/mv

Тема дорожной карты · Terraform

terraform state rm — это субкоманда Terraform CLI, удаляющая один или несколько экземпляров ресурсов из файла terraform.tfstate без уничтожения базовой инфраструктуры, фактически указывая Terraform прекратить управлять этими ресурсами. Это полезно, когда нужно вывести ресурс из IaC-управления, перенести его в другой корневой модуль Terraform или исправить повреждённую запись состояния перед запуском terraform import для её корректного повторного добавления. Сопутствующая команда terraform state mv перемещает запись ресурса внутри одного состояния или между state-файлами — она часто используется при рефакторинге иерархий модулей. И terraform state rm, и terraform state mv следует запускать против remote-бэкенда с включённой блокировкой состояния для предотвращения параллельных модификаций terraform.tfstate во время операции.

Как это работает

terraform state rm/mv — источник истины того, что Terraform считает существующим. Маппит HCL-ресурсы к реальным ID + трекает атрибуты. Local state (terraform.tfstate) ок для соло-обучения; всегда используйте remote backend (S3+DynamoDB, Yandex Object Storage+lockable, Terraform Cloud, GitLab, или terraform login) для команды и production — даёт state locking (предотвращает конкурентные apply), versioned history, контроль доступа. State может содержать секреты — шифруйте.

Когда применять

Remote backend — с первого дня любого командного проекта. Делите state per environment + per concern (один большой state = blast radius на плохом изменении). Подкоманды terraform state (mv, rm, import) — осторожно, они напрямую мутируют state. Drift-detection — terraform plan в CI по расписанию.

Типичные ошибки

Ловушки terraform state rm/mv: коммит terraform.tfstate в git (содержит секреты + не выдержит конкурентных правок); удаление state "начать заново" (осиротит каждый ресурс — останутся в облаке, не отслеживаются, тратят деньги); два человека одновременный apply без локинга (corruption state); state-хирургия (state rm + import) без бекапа предыдущего state.

Связанные понятия

Полезные ресурсы