0Pricing
DevOps Bootcamp · Урок

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 — локальная установка не требуется.

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

  1. IaC с Terraform и GitHub Actions
  2. Управление облачными ресурсами
  3. Автоматизация обновлений инфраструктуры
  4. Управление состоянием Terraform и удалёнными серверными модулями
← Назад к DevOps Bootcamp