Terraform state хранит связь между кодом и реальными ресурсами. Если state потерян или поврежден, Terraform может предложить создать дубли, удалить нужные ресурсы или перестать понимать инфраструктуру.

Когда это становится проблемой

Команда запускает plan и видит сотни неожиданных изменений. Часть ресурсов существует в облаке, но Terraform считает их новыми. Это опасная ситуация: одно apply может сломать production.

Что проверяю в первую очередь

  • Есть ли backup state и история версий remote backend
  • Какие ресурсы реально существуют в облаке
  • Что показывает terraform plan без применения
  • Есть ли lock, конфликт workspace или неправильный backend
  • Можно ли восстановить state через import

Как исправляю

Я не запускаю apply до восстановления картины. Сначала сохраняю текущие файлы, проверяю backup и собираю список ресурсов, которые нужно вернуть в state.

  • Восстанавливаю state из backup или versioning
  • Импортирую существующие ресурсы в Terraform state
  • Исправляю backend, workspace и блокировки
  • Проверяю plan до нулевого или ожидаемого diff

Что важно не сломать

Самый большой риск — применить plan, который удалит или пересоздаст рабочие ресурсы. В такой ситуации важнее осторожность, чем скорость.

Что будет после исправления

  • Terraform снова видит существующую инфраструктуру
  • Plan не содержит неожиданных разрушительных действий
  • State хранится в безопасном remote backend
  • Появляется инструкция восстановления и backup

Что подготовить перед обращением

  • Код Terraform
  • Текущий state или backup, если есть
  • Доступ к облаку
  • Вывод terraform plan

Вопросы и ответы

Можно ли исправить без полной переделки?

Да, если ресурсы еще существуют. Их можно импортировать или восстановить state из резервной копии.

Сколько времени занимает диагностика?

Зависит от количества ресурсов. Малый проект восстанавливается быстрее, большую инфраструктуру нужно сверять аккуратно.

Нужна похожая задача?

Напишите в Telegram @rabotator_support и коротко опишите проблему. Я посмотрю симптомы, предложу понятный план работ и скажу, какие доступы нужны для безопасного исправления.