Terraform Infrastructure as Code · Урок

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

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

Урок 2 из 411 шагов

«Автоматизация `plan` и `apply`» — бесплатный урок Terraform Infrastructure as Code на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Terraform Infrastructure as Code, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Terraform Infrastructure as Code содержит 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 делает автоматизированные развёртывания надёжными и предсказуемыми.

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

Можно начать бесплатно

Изучай Terraform Infrastructure as Code с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
12
Уроки
48

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

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

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

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

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

Нужен ли мне опыт, чтобы начать Terraform Infrastructure as Code?

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

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

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

Можно ли писать и запускать код в этом уроке Terraform Infrastructure as Code?

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

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

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