GitHub Actions
Тема дорожной карты · Terraform
GitHub Actions для Terraform предоставляет нативный способ запускать terraform init, terraform plan и terraform apply внутри GitHub-hosted или self-hosted раннеров, привязывая изменения инфраструктуры непосредственно к жизненному циклу pull request'а. Поддерживаемый HashiCorp экшн hashicorp/setup-terraform устанавливает зафиксированную версию Terraform (или OpenTofu через community-экшн), а шаг actions/checkout гарантирует наличие правильного HCL-исходника до выполнения любой команды. Рабочие процессы GitHub Actions для Terraform, как правило, хранят remote-state в S3-бакете или Terraform Cloud, используют аутентификацию через OIDC для принятия ролей AWS, Azure или GCP без долгосрочных учётных данных и публикуют вывод terraform plan как комментарии к PR через github-script. Чувствительные значения — токены Vault или зашифрованные SOPS tfvars — передаются как секреты GitHub Actions, не попадая в репозиторий. Поскольку GitHub Actions использует один CI/CD-движок для конвейеров приложений и инфраструктуры, команды получают единые журналы аудита, gates на основе защиты веток и подтверждения окружений для всех операций terraform apply.
Как это работает
GitHub Actions обычно: PR открыт → CI гоняет terraform fmt -check, validate, tflint, tfsec, потом terraform plan против state целевой среды и постит plan комментом в PR. На merge в main → CI делает terraform apply автоматически (с гейтами одобрения для prod). Инструменты: Atlantis (open-source PR-автоматизация), Terraform Cloud / Enterprise (managed-предложение HashiCorp), env0, Spacelift, GitHub Actions / GitLab CI с кастомными workflow.
Когда применять
Автоматизируйте весь flow до деплоя в production. PR-comment с plan — killer-фича: ревьюеры видят, что именно меняется. Требуйте approval до apply для production (ручной гейт). Запускайте plan по расписанию (drift-detection) — выявляет ручные изменения. Для RF / суверенности — self-host Atlantis на Yandex Cloud + GitLab-раннер; избегайте Terraform Cloud (US-hosted).
Типичные ошибки
Ловушки GitHub Actions: auto-apply в prod без approval-гейта (один плохой PR = плохой prod); долгие plan, превышающие время CI-раннера (делите на меньшие root-модули); credentials в CI-логах (маскируйте, никогда не echo); не обработаны конкурентные PR за один lock (Atlantis ставит в очередь; Terraform Cloud сериализует).
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…