Terraform: инфраструктура как код

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

О курсе

Terraform позволяет описывать инфраструктуру в коде и воспроизводить её нажатием одной команды. Этот курс научит вас мыслить в парадигме Infrastructure as Code: писать конфигурации HCL, управлять состоянием, строить переиспользуемые модули и интегрировать Terraform в CI/CD-процессы.

Целевая аудиторияDevOps-инженеры и системные администраторы
Формат6 модулей, практика с реальными облачными провайдерами
ИтогПолноценная IaC-конфигурация инфраструктуры
01

Введение в Infrastructure as Code

Разбираем проблемы ручного управления инфраструктурой и знакомимся с концепцией IaC. Изучаем место Terraform среди других инструментов и делаем первые шаги: устанавливаем Terraform и запускаем первую конфигурацию.

Ключевые темы

  • Проблемы ручного управления инфраструктурой
  • IaC: декларативный и императивный подходы
  • Место Terraform среди инструментов: Ansible, Pulumi, CloudFormation
  • Установка Terraform и настройка окружения
  • Архитектура Terraform: core, plugins, providers
  • Первая конфигурация: terraform init, plan, apply, destroy
02

Синтаксис HCL и основные блоки

Погружаемся в язык конфигурации HCL. Изучаем основные строительные блоки Terraform: resource, variable, output и locals, а также учимся связывать ресурсы между собой через ссылки и интерполяцию.

Ключевые темы

  • HCL: HashiCorp Configuration Language, основной синтаксис
  • Блок resource: создание ресурсов
  • Блок variable: входные параметры и их типы
  • Блок output: вывод значений
  • Блок locals: локальные вычисления
  • Ссылки между ресурсами и интерполяция
03

Провайдеры и управление состоянием

Разбираемся с провайдерами — плагинами, которые позволяют Terraform управлять различными платформами. Изучаем state-файл: что он хранит, почему важен и как организовать его хранение в команде.

Ключевые темы

  • Провайдеры: что это и как подключать
  • Реестр Terraform Registry
  • Блок required_providers и версионирование
  • State-файл: что хранит и зачем
  • Remote state: хранение в S3/GCS/Terraform Cloud
  • terraform state: команды управления состоянием
04

Модули: переиспользование кода

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

Ключевые темы

  • Что такое модуль и зачем он нужен
  • Структура модуля: variables.tf, outputs.tf, main.tf
  • Вызов модуля и передача переменных
  • Публичные модули в Terraform Registry
  • Версионирование модулей
  • Рекомендации по организации кода
05

Продвинутые возможности

Осваиваем мощные возможности Terraform для работы с динамическими конфигурациями: создание множества ресурсов через циклы, чтение существующей инфраструктуры через data sources и управление зависимостями.

Ключевые темы

  • count и for_each: создание множества ресурсов
  • dynamic блоки
  • data sources: чтение существующих ресурсов
  • Условные выражения и функции
  • templatefile и шаблоны
  • depends_on: управление зависимостями
06

Terraform в команде и CI/CD

Разбираем, как организовать работу с Terraform в команде: форматирование и валидация кода, блокировки state, управление окружениями через workspace и автоматизация через CI/CD-пайплайны.

Ключевые темы

  • terraform fmt, validate, tflint: качество кода
  • Блокировки state при командной работе
  • Workspace: управление окружениями
  • Интеграция с GitHub Actions: планирование и применение
  • Atlantis: автоматизация Terraform через PR
  • Секреты: безопасная передача credentials

Итоговый проект

Описать в коде полноценную инфраструктуру: виртуальные машины, сеть с подсетями, группы безопасности и DNS. Разбить конфигурацию на модули для разных компонентов, настроить remote state и CI/CD-пайплайн для автоматического применения изменений.

Задания на портале Вернуться на главную