$ cat /intro
TerraformLab.
Учебник, от HCL до production-пайплайна.
42 урока, 80 KB-статей, sandbox на LocalStack. Это не серия видео и не справочник по полям ресурсов. Это книга с интерактивным терминалом, в которой Terraform проходится от первого terraform init до custom-провайдера на Go.
Можно по порядку, от beginner-01 до advanced-08 (~10 часов чистой практики). Можно с любого трека, если знаешь предыдущие. Мостики на стыках подскажут, если темп не зашёл.
Кому подойдёт
Не нужны Terraform-опыт и AWS-сертификат. Нужен Linux на уровне «открыл терминал и не напугался» и базовое представление об облачных сервисах (S3, IAM, что-то про сети).
- Junior с Linux-опытом
- Закончил LinuxLab beginner-трек или эквивалент. Понимаешь файлы, процессы, ssh, базовый bash. Не писал HCL, AWS видел только в Console.
- DevOps после opsschool
- Знаешь Docker, CI/CD, базовый AWS. Видел Terraform в работе, может быть копировал чужие модули, но как он устроен внутри, что такое state и почему apply страшный, не разбирался.
- Разработчик к инфре
- Пишешь backend, инфру делает кто-то другой. Хочешь сам поднять окружение, посмотреть план до того как просить SRE, понять что значит «у нас drift».
Не уверен в Linux? Начни оттуда: LinuxLab /intro. Beginner-трек закроет то, что нужно для Terraform.
Карта треков
Четыре трека, 42 урока. Каждый трек предполагает предыдущий. Пропускать можно, но мостики на стыках предупреждают если уровень сильно ниже.
P0
Foundations (beginner)
12 уроков · ~140 мин
Главный цикл Terraform: HCL → init → plan → apply → state. Переменные, outputs, locals, data sources, count и for_each, lifecycle, fmt/validate/console, дебаг через TF_LOG и граф. К концу пишешь и читаешь чужой HCL без подглядываний.
prereq · Linux на уровне LinuxLab beginner (LinuxLab, /intro).
tf-beginner-01-hello-s3 →P1
Intermediate
12 уроков · ~190 мин
Модули как ремесло (свой первый, из registry, for_each над модулем), dynamic-блоки, templatefile, remote backend в S3, state mv/rm, import-блок, moved-блок, preconditions, утилитарные провайдеры, multi-env layout.
prereq · Прошёл beginner или уверенно работаешь с базовым HCL.
tf-intermediate-01-first-module →P2
Production
10 уроков · ~150 мин
Линтеры, pre-commit, нативные `.tftest.hcl`, mock-провайдеры, Checkov, OPA + Rego, plan как артефакт, GitHub Actions через act, OIDC, drift detection. Пайплайн готов к проду.
prereq · Уверен в модулях и remote state.
tf-production-01-fmt-validate-tflint →P3
Advanced
8 уроков · ~150 мин
Terragrunt для N окружений, CDKTF на TypeScript, свой Terraform-провайдер на Go, large-scale state, blue-green миграция legacy, Infracost, OpenTofu matrix в CI, capstone проект: VPC + ALB + ECS Fargate + Lambda.
prereq · Понимаешь зачем нужен Terragrunt и почему import не всегда правильный путь.
tf-advanced-01-terragrunt →
Что курс даёт и чего нет
ДАЁТ
- HCL пишешь руками, не копипастишь: синтаксис, типы, выражения, функции.
- Понимаешь state как механизм: что внутри, чем опасен, как двигать без destroy.
- Модули свои и из registry. Контракт через input/output, версионирование.
- Production-пайплайн: fmt/validate/tflint/checkov/OPA/tftest/GHA через act.
- Знаешь когда Terraform не тот инструмент: K8s-манифесты, образы, деплой.
НЕ ДАЁТ
- Реального AWS нет: sandbox на LocalStack. Никаких счетов, но и часть сервисов эмулируется ограниченно (EKS, RDS Aurora, некоторые ML недоступны).
- Multi-cloud нет: только AWS-провайдер. Azure/GCP не входят, их можно изучить отдельно после.
- Глубокого Kubernetes нет: есть одна KB-статья «когда не Terraform», без уроков по EKS/манифестам через kubernetes-провайдер.
- Реальной production-эксплуатации нет: теория drift, OIDC и операционных моделей есть, дежурного опыта нет, это даёт только работа.
Граничные темы (Terragrunt в проде, custom-провайдер на Go, OpenTofu) есть в advanced-треке, но прикладного опыта они не заменят. Используй курс как фундамент, а не как опыт.
С чего начать
Без pre-assessment. Выбери себе ближе. Если ошибёшься, мостики внутри уроков подскажут вернуться или пройти быстрее.
С нуля
Terraform не открывал, HCL не писал
→ beginner-01-hello-s3
Базу знаю
HCL и plan/apply пишу, хочу модули и state
→ intermediate-01-first-module
Terraform знаю
нужен production-пайплайн и тестирование
→ production-01-fmt-validate-tflint
$ или просто cd /lessons, там список всех уроков по трекам.
Что встретится в уроке
Повторяющиеся элементы стоит знать заранее.
- Sandbox
- Левая колонка содержит текст урока, правая показывает терминал в Docker-контейнере с Terraform 1.9.8, tflint, checkov, OPA, Terragrunt и LocalStack рядом. Контейнеры живут 45 минут, потом сносятся.
- Шаги с verify
- Каждый шаг проверяется: terraform_plan_clean, terraform_state_resource, terraform_output, terraform_module_call, terraform_state_count, command_with_output_regex. Зелёный verify = шаг засчитан.
- KB [[slug]]
- Двойные квадратные скобки в YAML рендерятся как ссылки на справочные статьи. 80 KB в 13 категориях: core, providers, resources, variables, state, workflow, debugging, modules, refactoring, testing, security, cicd, advanced.
- Deep dive
- Раскрывающийся блок «копнуть глубже» внутри шага. Подходит тем кому интересно происхождение или граничный случай. Для прохождения не обязательно.
- OpenTofu-врезка
- В каждом уроке есть deep_dive «То же самое на OpenTofu»: state совместим, CLI идентичен, отличия точечные. Полная статья: [[tf-opentofu-parity]].
- Capstone и Garden
- Сквозной проект MiniCo на 1–2 недели лежит на отдельной странице /capstone и собирает уроки в одну инфру. Troubleshooting Garden состоит из 5 уроков с заведомо сломанной конфигой; чинишь и проверяешь.
Готов к практическому проекту? MiniCo Cloud Platform, capstone-проект, который связывает уроки в одну инфру (VPC, ALB, ECS, Lambda, S3, IAM, monitoring). Шпаргалка по командам: /cheatsheet.
Не уверен в Linux? Начни здесь
Terraform-инженер без Linux это половина инженера. В sandbox-уроках будешь работать с правами, файлами, переменными окружения, systemd. Если этим раньше не занимался, LinuxLab beginner-трек закроет пробел за 4–6 часов. После него возвращайся сюда, будет заметно легче.