IaC с Terraform и GitHub Actions
Изучите интеграцию Terraform с рабочими процессами GitHub Actions для подготовки и управления инфраструктурой.
«IaC с Terraform и GitHub Actions» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Инфраструктура как код (IaC)
Добро пожаловать! На этом уроке мы подробно рассмотрим инфраструктуру как код (IaC). Такой подход означает управление инфраструктурой и ее подготовку, включая серверы, базы данных и сети, с помощью кода вместо ручных процессов.
Представьте, что Вы пишете программное обеспечение для своей инфраструктуры. Это дает множество преимуществ, включая согласованность, воспроизводимость и контроль версий всей конфигурации.
Знакомство с Terraform для IaC
Один из самых популярных инструментов для IaC — Terraform, инструмент с открытым исходным кодом, разработанный HashiCorp.
Terraform позволяет описывать ресурсы инфраструктуры в понятных человеку конфигурационных файлах. Затем он использует эти файлы для подготовки и управления ресурсами у различных облачных поставщиков, таких как AWS, Azure и GCP, а также в других сервисах.
Синтаксис HCL в Terraform
Terraform использует собственный декларативный язык под названием язык конфигурации HashiCorp (HCL). HCL разработан так, чтобы его было легко читать и писать, поэтому описания инфраструктуры получаются понятными.
Вот небольшой пример HCL, описывающий VPC AWS (виртуальную частную сеть):
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "my-vpc"
}
}Основной рабочий процесс Terraform
Terraform использует последовательный рабочий процесс из трех шагов для управления инфраструктурой:
terraform init: Инициализирует рабочий каталог, загружая необходимые плагины поставщиков.terraform plan: Создает план выполнения, показывающий, какие изменения Terraform внесет в инфраструктуру.terraform apply: Выполняет изменения, указанные в плане, подготавливая или изменяя ресурсы.
Автоматизация с помощью GitHub Actions
Интеграция Terraform с GitHub Actions значительно усиливает Ваш подход к IaC. Она позволяет автоматизировать важные шаги в конвейере развертывания инфраструктуры.
С помощью GitHub Actions Вы можете:
- Автоматически запускать
terraform planдля каждого запроса на слияние. - Обеспечивать проверку и утверждение изменений инфраструктуры.
- Автоматизировать
terraform applyдля контролируемых развертываний.
Файл рабочего процесса Terraform
Рабочий процесс GitHub Actions для Terraform определяется в файле YAML внутри каталога .github/workflows/ вашего репозитория. В этом файле указано, когда запускается рабочий процесс и какие шаги он выполняет.
Вот базовая структура рабочего процесса, который может составлять план изменений:
name: 'Terraform CI'
on:
pull_request:
branches:
- main
jobs:
terraform:
name: 'Terraform'
runs-on: ubuntu-latest
steps:
# Your workflow steps will go here
Настройка Terraform и шаг инициализации
Перед выполнением любых команд Terraform рабочему процессу необходимо получить ваш код, настроить Terraform CLI и инициализировать рабочий каталог.
Действие hashicorp/setup-terraform упрощает эту задачу:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: 1.5.x
- name: Terraform Init
run: terraform initШаг планирования Terraform
Команда terraform plan — важный шаг любого рабочего процесса IaC. Она выполняет «пробный запуск», чтобы определить необходимые действия для достижения целевого состояния, заданного в конфигурационных файлах.
Этот шаг позволяет проверить предлагаемые изменения до фактического внесения каких-либо изменений в облачную среду.
- name: Terraform Plan
run: terraform plan
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}Быстрая проверка: план Terraform
Понимание основных команд — залог эффективного использования Terraform в автоматизированных рабочих процессах.
Что следует учитывать при применении Terraform
Команда terraform apply вносит фактические изменения в инфраструктуру.
В автоматизированных конвейерах обычно запускают terraform apply только после проверки вывода команды plan человеком или только при слиянии изменений в определенные ветки, например main или production. Это предотвращает случайные или неутвержденные изменения инфраструктуры.
Повторение: IaC с Terraform и GitHub Actions
На этом уроке мы рассмотрели, как инфраструктура как код (IaC) помогает управлять инфраструктурой с помощью кода. Мы сосредоточились на Terraform как на ведущем инструменте для IaC, изучив его синтаксис HCL и основные этапы рабочего процесса: инициализация, планирование и применение.
Вы также увидели, как GitHub Actions может автоматизировать шаги terraform init и terraform plan, делая развертывание инфраструктуры более безопасным, согласованным и полностью интегрированным в конвейеры CI/CD.
Часто задаваемые вопросы
Урок «IaC с Terraform и GitHub Actions» бесплатный?
Да — полный текст урока «IaC с Terraform и GitHub Actions» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «IaC с Terraform и GitHub Actions»?
Изучите интеграцию Terraform с рабочими процессами GitHub Actions для подготовки и управления инфраструктурой. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «IaC с Terraform и GitHub Actions»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- IaC с Terraform и GitHub Actions
- Управление облачными ресурсами
- Автоматизация обновлений инфраструктуры
- Управление состоянием Terraform и удалёнными серверными модулями