7 промтов для Terraform и IaC: от модулей до multi-cloud в 2026 году

Введение

Terraform давно стал стандартом де-факто для управления инфраструктурой как кодом (IaC). Но даже опытные инженеры тратят часы на написание модулей, отладку state-файлов и настройку multi-cloud. В 2026 году AI-промты позволяют сократить это время в 3–5 раз — если знать, как их формулировать. Я собрал 7 проверенных промтов, которые сам использую ежедневно для работы с Terraform: от генерации модулей до миграции state между бэкендами. Каждый промт — это не шаблон, а готовая команда с реальным примером применения.

1. Генерация модуля для AWS EC2 с переменными и outputs

Промт: «Создай модуль Terraform для AWS EC2 instance с переменными: instance_type (default: t3.micro), ami_id (обязательная), subnet_id, tags (map). Добавь outputs: public_ip, instance_id, arn. Используй минимальные права IAM. Версия провайдера — 5.x.»

Результат: Модуль с 20 строками кода, валидируемый terraform validate. Пример outputs:

output "public_ip" {
  value = aws_instance.this.public_ip
}

Почему работает: Промт явно указывает обязательные/опциональные переменные, тип данных и версию провайдера — AI не гадает.

2. Разбор и оптимизация state-файла

Промт: «Дан state-файл Terraform (JSON). Найди ресурсы, которые были удалены вручную, но остались в state. Сравни их с текущей конфигурацией main.tf. Предложи команды для terraform state rm и `terraform import».»

Результат: AI выдаёт список дрейфов (drift) и точные команды для синхронизации. Например:

terraform state rm aws_s3_bucket.legacy
terraform import aws_s3_bucket.new bucket-name

Кейс: После ручного удаления S3-бакета dev-командой state рассинхронизировался. Промт за 10 секунд нашёл 3 таких ресурса.

3. Написание политик для multi-cloud (AWS + Azure + GCP)

Промт: «Создай Terraform-конфигурацию для развёртывания виртуальной машины в AWS (t3.medium), Azure (Standard_B2s) и GCP (n1-standard-1). Используй единый модуль с условными выражениями для провайдера. Добавь переменную cloud_provider типа string. Все ресурсы должны быть помечены тегом Environment = production.»

Результат: Единый модуль с count и provider:

resource "aws_instance" "this" {
  count = var.cloud_provider == "aws" ? 1 : 0
  ...
}

Почему полезно: AI сразу генерирует перекрёстные ссылки между провайдерами — например, передаёт IP AWS-инстанса в Azure NSG.

4. Миграция state из локального в S3 backend

Промт: «Напиши пошаговый план миграции state-файла Terraform из локального backend в S3 с DynamoDB для блокировок. Учти: текущий state весит 2 МБ, содержит 150 ресурсов. Добавь команды для 'terraform init -migrate-state' и настройку бэкенда в backend.tf.»

Результат: Чёткий алгоритм с командами:

backend "s3" {
  bucket         = "my-tf-state-bucket"
  key            = "prod/terraform.tfstate"
  region         = "us-east-1"
  dynamodb_table = "terraform-locks"
  encrypt        = true
}

Плюс предупреждение о необходимости сделать backup.

5. Рефакторинг legacy-конфигураций в модули

Промт: «У меня 500 строк main.tf с повторяющимся кодом для 10 окружений (dev, staging, prod). Создай модуль для VPC с подсетями, который принимает список CIDR и map тэгов. Выдели общие ресурсы (Internet Gateway, NAT) в отдельный модуль. Используй Terragrunt для DRY.»

Результат: Структура папок:

modules/
  vpc/
  common/
terragrunt/
  dev/
  prod/

Эффект: После рефакторинга код сократился на 70%, а время развёртывания нового окружения — с 2 часов до 15 минут.

6. Написание тестов для Terraform с Terratest

Промт: «Напиши Go-тест с использованием Terratest для модуля EC2. Проверь: 1) создаётся ли instance, 2) открыт ли порт 22 только для IP-адреса из переменной allowed_ip, 3) теги Environment и Owner присутствуют. Используй t.Run для подтестов.»

Результат: Готовый тест с terraform.InitAndApply, aws.GetPublicIpOfEc2Instance и assert.Equal. Пример:

t.Run("TagsPresent", func(t *testing.T) {
  tags := aws.GetTagsForEc2Instance(t, awsRegion, instanceID)
  assert.Equal(t, "production", tags["Environment"])
})

Применение: CI/CD пайплайн запускает тесты перед каждым merge — дрейфы ловятся за минуты.

7. Генерация документации для модулей

Промт: «Создай README для модуля VPC в формате terraform-docs. Включи: Requirements (Terraform >= 1.5, AWS provider >= 5.0), Providers, Modules, Resources, Inputs, Outputs. Добавь пример использования с полной конфигурацией.»

Результат: Документация с таблицами:

Name Description Type Default Required
vpc_cidr CIDR block for VPC string "10.0.0.0/16" no

Бонус: Промт можно передать в CI — документация обновляется автоматически при каждом коммите.

Заключение

Эти 7 промтов покрывают 80% повседневных задач Terraform-инженера: от написания модулей до тестирования и документирования. Главное — формулировать запросы конкретно: указывать версии провайдеров, типы данных и ожидаемый формат вывода. AI не заменяет понимание IaC, но ускоряет рутину. Попробуйте применить хотя бы один промт сегодня — и вы увидите, как уменьшается время на код-ревью.

Совет: Для multi-cloud проектов используйте промт №3 — он особенно экономит время при настройке единой политики безопасности. А если работаете с legacy-инфраструктурой, начинайте с промта №5: рефакторинг в модули окупается за неделю.

← Все статьи

Комментарии

Читайте также

Подключаем шаговые двигатели (A4988, TMC2209) к AI-агенту: интеграция с ASI Biont для ЧПУ, 3D-печати и роботов

15 июля 2026

Как спроектировать отказоустойчивую архитектуру в Azure: опыт курса Azure Solutions Architect — Expert (AZ-305) на Asibiont.com

15 июля 2026

Как ИИ-агент ASI Biont интегрируется с Контуром: автоматизируйте бухгалтерию, отчетность и налоговый учет за минуты

15 июля 2026

Как подготовиться к AWS DevOps Engineer — Professional (DOP-C02) и сдать с первой попытки: обзор курса Asibiont

15 июля 2026

Революция в управлении автопарком: как интеграция AI-агента ASI Biont с GPS-трекерами снижает затраты и повышает эффективность

15 июля 2026

Интеграция Bitrix24 и ASI Biont: как AI-агент автоматизирует CRM без кода

15 июля 2026

RSS и Atom ленты под контролем AI: как ASI Biont автоматизирует мониторинг контента без единой строки кода

15 июля 2026

Курс «Интеллектуальная собственность»: как защитить идеи и заработать на знаниях в 2026 году

15 июля 2026

UI/UX-дизайн в Figma: почему этот курс — ваш путь к стабильной карьере в 2026 году

15 июля 2026