0Pricing
DevOps Bootcamp · Урок

Автоматизация `plan` и `apply`

Настройте автоматический запуск `terraform plan` для проверки и `terraform apply` для развёртывания в системе CI/CD, обеспечивая единообразные развёртывания.

«Автоматизация `plan` и `apply`» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Автоматизация развёртывания Terraform

Ручной запуск terraform plan и terraform apply может быть медленным и приводить к ошибкам, особенно в командной среде.

Автоматизация этих шагов в конвейере непрерывной интеграции и непрерывной доставки (CI/CD) даёт значительные преимущества:

  • Скорость: более быстрое внесение изменений в инфраструктуру.
  • Единообразие: исключение ошибок, связанных с человеческим фактором.
  • Надёжность: предсказуемое развёртывание.
  • Совместная работа: упрощение командной проверки и утверждения.

Автоматический просмотр изменений

Команда terraform plan — это ваша страховочная сетка. Она показывает, какие именно изменения Terraform внесёт в инфраструктуру, не выполняя их на самом деле.

В конвейере CI/CD команда plan должна автоматически запускаться при каждом изменении кода (например, при создании запроса на слияние). Это обеспечивает немедленный предварительный просмотр для проверки.

Настройка автоматического планирования

Интеграция terraform plan в конвейер непрерывной интеграции обычно включает несколько шагов:

  1. Инициализация: выполните terraform init, чтобы подготовить рабочий каталог.
  2. Планирование: выполните terraform plan, чтобы сформировать предлагаемые изменения.
  3. Результат: сохраните результат планирования для проверки.

Ниже приведён упрощённый пример того, как это может выглядеть в сценарии CI:

# ci_plan_stage.sh
terraform init
terraform plan -out=tfplan

Понимание предлагаемых изменений

После выполнения terraform plan его результат имеет решающее значение. В нём подробно описывается каждый ресурс, который будет создан (+), обновлён (~) или уничтожен (-).

Проверка этого результата (часто в комментарии к запросу на слияние) помогает обнаружить непреднамеренные изменения и сохранить целостность инфраструктуры. Это важная контрольная точка.

Утверждение развёртывания человеком

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

Вместо этого результат plan должен быть проверен и явно утверждён участником команды. После этого утверждения (например, после слияния запроса на слияние) запускается фактическое развёртывание.

Автоматическое развёртывание инфраструктуры

После проверки и утверждения terraform plan управление переходит к terraform apply. Эта команда выполняет изменения, определённые в файлах конфигурации.

В конвейере CI/CD команда apply часто запускается после успешного слияния в назначенную ветку развёртывания (например, main или production) либо вручную после утверждения.

Шаг автоматического развёртывания

При автоматизации terraform apply в средах CI/CD часто используется флаг -auto-approve. Помните, что он пропускает запрос на интерактивное подтверждение.

Всегда обеспечивайте защиту этого шага с помощью строгих средств управления доступом и запускайте его только после явного утверждения человеком или автоматической системой на основании успешного плана.

# cd_apply_stage.sh
terraform init
terraform apply -auto-approve tfplan

Единообразное развёртывание каждый раз

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

Если инфраструктура уже соответствует конфигурации, apply ничего не сделает, обеспечивая единообразное и надёжное развёртывание без непреднамеренных побочных эффектов.

Защита автоматизированного рабочего процесса

При автоматизации plan и apply:

  • Минимальные привилегии: убедитесь, что агент CI/CD имеет только необходимые разрешения.
  • Удалённое состояние: используйте удалённые хранилища состояния с блокировкой для совместной работы.
  • Контроль версий: храните все конфигурации Terraform под контролем версий.
  • Мониторинг: настройте мониторинг и оповещения о состоянии развёртывания.

Проверьте своё понимание

Проверим ваши знания об автоматизации Terraform в CI/CD!

Основные выводы

В этом уроке мы узнали, как автоматизировать terraform plan и terraform apply в конвейере CI/CD.

  • terraform plan обеспечивает безопасный предварительный просмотр изменений, подходящий для автоматических проверок и проверки человеком.
  • Ограничение apply с помощью утверждения гарантирует проверку критически важных изменений.
  • terraform apply автоматизирует развёртывание, часто с использованием -auto-approve в контролируемых средах.
  • Идемпотентность Terraform делает автоматизированные развёртывания надёжными и предсказуемыми.

Такая автоматизация необходима для эффективного, единообразного управления инфраструктурой и совместной работы!

Часто задаваемые вопросы

Урок «Автоматизация `plan` и `apply`» бесплатный?

Да — полный текст урока «Автоматизация `plan` и `apply`» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Автоматизация `plan` и `apply`»?

Настройте автоматический запуск `terraform plan` для проверки и `terraform apply` для развёртывания в системе CI/CD, обеспечивая единообразные развёртывания. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Автоматизация `plan` и `apply`»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Terraform в конвейерах CI/CD
  2. Автоматизация `plan` и `apply`
  3. Безопасное управление учётными данными
  4. GitOps и автоматизация запросов на слияние
← Назад к DevOps Bootcamp