Практика Terraform и OpenTofu: plan, state и изменения без сюрпризов

Самый неприятный момент в инфраструктуре как код — увидеть замену ресурса, который вы собирались только переименовать. Команда выполняет написанное, но результат расходится с намерением автора. Эта подборка посвящена чтению плана и связи конфигурации с состоянием: что именно меняется, почему и как это проверить до применения.

Как работать с подборкой

Работайте в отдельном учебном проекте с ресурсами, которые можно восстановить. Сохраните исходную конфигурацию и резервную копию состояния по правилам своего backend. Для облачных упражнений заранее посмотрите стоимость выбранных ресурсов. Начинайте с plan: применять изменение имеет смысл после того, как вы можете объяснить каждую операцию.

Ниже — статьи с объяснениями и примерами. Практические эксперименты выполняются в вашем учебном окружении; это не встроенный автоматический экзамен.

1. Понять, что предлагает план

Разберите коды завершения, принудительную замену и невозможность вычислить ключи коллекции заранее. Хорошая тренировка — сначала записать ожидаемые операции на бумаге, затем сравнить их с plan.

2. Изменить структуру конфигурации

Переименование и перестройка списка не обязательно означают изменение реальной инфраструктуры. Проверьте, как адреса ресурсов связаны с состоянием, прежде чем реорганизовывать рабочий модуль.

3. Сохранить согласованное состояние

Общий backend, блокировки и внешние изменения становятся важны, когда инфраструктуру меняет больше одного человека. Отработайте эти ситуации отдельно: они требуют разных действий.

4. Сделать окружение воспроизводимым

Разберитесь с выбором provider, lock-файлом и данными в state. Пометка sensitive управляет отображением значений, но сама по себе не превращает хранилище состояния в безопасное место для любого секрета.

Соберите результат в одну рабочую процедуру

Для итогового упражнения возьмите небольшой ресурс, измените его адрес в конфигурации и докажите по плану, что инфраструктура не будет пересоздана. Затем добавьте внешний дрейф в учебном окружении и объясните, какое состояние вы хотите считать правильным. Важен предсказанный результат, а не количество выполненных apply.

Продолжить обучение

Продолжение с модулями, состоянием и инфраструктурным проектом — в программе курса Terraform и OpenTofu: инфраструктура как код. На странице курса — программа, условия доступа и покупки. Сопоставьте их со своей ближайшей рабочей задачей.

Если пока не хватает базы или нужен соседний инструмент, выберите другой маршрут в путеводителе по практике DevOps.

Продолжить на практике

  • Terraform и OpenTofu: инфраструктура как код ↗

    Описывайте инфраструктуру в коде, проверяйте изменения до применения и работайте со state без сюрпризов. HCL, модули, remote state, импорт, CI и различия Terraform/OpenTofu — на воспроизводимом учебном окружении.