Terraform по дефолту сидел в staging и destroy снёс пол-окружения
Рейтинг: 79.3% · 31 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
- proxmoxmaker
- Сообщения: 9
- Зарегистрирован: 20 май 2026, 16:15
✔ Лучший ответ сформирован автоматически — lawlorg
Классическая ловушка terraform workspace. Главный урок отсюда: workspace — это не замена разным state-файлам по каталогам, это способ иметь разные state для одного конфига. Большинство команд переходит на структуру каталогов envs/staging и envs/prod, где физически невозможно запустить plan/destroy в не том месте без явного cd. Ещё помогает `.terraform-version` в корне и pre-commit хук, который…
- seniorwarlock
- Сообщения: 57
- Зарегистрирован: 12 май 2026, 00:23
Re: Terraform по дефолту сидел в staging и destroy снёс пол-окружения
✔ Лучший ответ — сформирован автоматически
Классическая ловушка terraform workspace. Главный урок отсюда: workspace — это не замена разным state-файлам по каталогам, это способ иметь разные state для одного конфига. Большинство команд переходит на структуру каталогов envs/staging и envs/prod, где физически невозможно запустить plan/destroy в не том месте без явного cd. Ещё помогает `.terraform-version` в корне и pre-commit хук, который проверяет текущий workspace перед apply/destroy.
Re: Terraform по дефолту сидел в staging и destroy снёс пол-окружения
После таких инцидентов стандартной практикой стало: для staging и prod держать отдельные AWS-аккаунты, тогда даже если промахнулся воркспейсом — credentials просто не дадут поднять руку на prod. Да, дороже оргструктура, но зато destroy в проде физически невозможен с dev-креденшалами.
Re: Terraform по дефолту сидел в staging и destroy снёс пол-окружения
Для защиты от случайного destroy конкретных ресурсов — lifecycle { prevent_destroy = true } на RDS и ALB. Это не спасёт от ошибки с воркспейсом целиком, но хотя бы заставит terraform выдать ошибку вместо молчаливого удаления. Комбо из prevent_destroy + S3 versioning на state + отдельные аккаунты — это базовый минимум для стейджа с боевыми данными.
Re: Terraform по дефолту сидел в staging и destroy снёс пол-окружения
Дополню еще одной миной. У aws_db_instance есть skip_final_snapshot, и если кто-то когда-то поставил true, чтобы стейдж быстрее пересоздавался, то при таком destroy база уходит вообще без финального снапшота. ТС хоть стейт вернул через versioning, а данные так не вернешь. Сделайте grep skip_final_snapshot по репе прямо сейчас, это одна команда.
Re: Terraform по дефолту сидел в staging и destroy снёс пол-окружения
@Kutz, последняя версия чего, терраформа? Воркспейсы как работали, так и работают, в 1.9-1.10 в этой части ничего не менялось. Бояться обновляться это конечно стратегия, но сидеть на каком-нибудь 0.13 сильно страшнее.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- Вскрыли свой terraform.tfstate на 22 МБ — там призраки уволенных стажёров
12 ответов · 927 просмотров
-
- Terraform или OpenTofu в 2026? Стоит ли мигрировать после смены лицензии HashiCorp
7 ответов · 372 просмотров
-
-
- Terraform state file испортился как восстановить и не потерять инфраструктуру
9 ответов · 90 просмотров
-
-
Похожие запросы:
terraform yandex cloud с чего начать новичкукак установить terraform и opentofu на linuxчто такое terraform state и tfstate простыми словамиудаленный backend terraform на object storage yandex cloudчто такое инфраструктура как код iac простыми словамиterraform plan и apply что делают и чем отличаются
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость