Автоматизация `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 в конвейер непрерывной интеграции обычно включает несколько шагов:
- Инициализация: выполните
terraform init, чтобы подготовить рабочий каталог. - Планирование: выполните
terraform plan, чтобы сформировать предлагаемые изменения. - Результат: сохраните результат планирования для проверки.
Ниже приведён упрощённый пример того, как это может выглядеть в сценарии 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 — локальная установка не требуется.
Все уроки этого курса
- Terraform в конвейерах CI/CD
- Автоматизация `plan` и `apply`
- Безопасное управление учётными данными
- GitOps и автоматизация запросов на слияние