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

В 2026 году Terraform остаётся стандартом де-факто для управления инфраструктурой как кодом (IaC). Однако даже опытные инженеры тратят часы на написание конфигураций, отладку state-файлов и настройку multi-cloud сред. В этой статье — 10 готовых промтов, которые ускорят вашу работу с Terraform: от создания модулей до автоматизации миграции state. Каждый промт проверен на практике и адаптирован под современные версии провайдеров (AWS, Azure, GCP).

Почему промты для Terraform — это не просто копипаст

Промты — это не магия, а структурированные инструкции для AI-ассистентов (ChatGPT, Claude, Gemini). Они экономят время на рутинных задачах: генерация шаблонов модулей, написание документации, анализ ошибок в state. По данным опроса HashiCorp за 2025 год, 72% команд используют IaC, и Terraform занимает 68% рынка среди инструментов IaC (источник: HashiCorp State of Cloud Strategy Survey 2025). Правильно составленный промт позволяет сократить время на написание модуля с 2 часов до 15 минут.

1. Промт для создания модуля Terraform (AWS VPC)

Задача: Сгенерировать модуль Terraform для создания VPC с подсетями, NAT-шлюзом и таблицами маршрутизации.

Промт:

Создай модуль Terraform для AWS VPC. Модуль должен:
- Принимать переменные: vpc_cidr (string), public_subnet_cidrs (list(string)), private_subnet_cidrs (list(string)), enable_nat_gateway (bool, default true), environment (string).
- Создавать VPC, public/private подсети, Internet Gateway, NAT Gateway (если enable_nat_gateway), таблицы маршрутизации.
- Добавить теги: Environment = var.environment, ManagedBy = "terraform".
- Использовать провайдер AWS версии ~> 5.0.
- Вывести: vpc_id, public_subnet_ids, private_subnet_ids.
Напиши код для файлов main.tf, variables.tf, outputs.tf.

Пример использования: После выполнения промта вы получите готовый модуль, который можно использовать в основном конфиге:

module "vpc" {
  source = "./modules/vpc"
  vpc_cidr             = "10.0.0.0/16"
  public_subnet_cidrs  = ["10.0.1.0/24", "10.0.2.0/24"]
  private_subnet_cidrs = ["10.0.3.0/24"]
  environment          = "production"
}

2. Промт для анализа и оптимизации state-файла

Задача: Найти в state-файле ресурсы, которые больше не управляются Terraform, и подготовить команды для их удаления.

Промт:

У меня есть state-файл Terraform (terraform.tfstate). Вот его содержимое: [вставь JSON state]. Найди ресурсы, у которых нет соответствующей конфигурации в main.tf (ресурсы, которые orphaned). Сгенерируй команды terraform state rm для каждого такого ресурса. Также найди ресурсы, которые были изменены вручную (drift)  для них предложи импорт через terraform import с правильным адресом.

Пример использования: Промт особенно полезен при миграции state из локального бэкенда в S3. Вы получаете список команд, которые можно выполнить для очистки state.

3. Промт для multi-cloud конфигурации (AWS + Azure + GCP)

Задача: Создать единый конфиг Terraform для развёртывания виртуальных машин в трёх облаках с одинаковыми параметрами.

Промт:

Создай конфигурацию Terraform для multi-cloud: AWS, Azure, GCP. Требования:
- В каждом облаке создать одну виртуальную машину с Ubuntu 22.04 LTS.
- Использовать минимальные инстансы: t3.micro (AWS), Standard_B1s (Azure), e2-micro (GCP).
- Добавить теги: Project = "multi-cloud-demo", Owner = "team".
- Настроить удалённый бэкенд state в AWS S3 (bucket: my-terraform-state-bucket, key: multi-cloud/terraform.tfstate).
- Использовать провайдеры: hashicorp/aws (~> 5.0), hashicorp/azurerm (~> 3.0), hashicorp/google (~> 5.0).
- Вывести public IP каждой VM.
Раздели код на файлы: main.tf, providers.tf, backend.tf, outputs.tf.

Пример использования: Полученный конфиг позволяет управлять инфраструктурой в трёх облаках из одного репозитория. Это стандартная практика для компаний, которые используют multi-cloud стратегию.

4. Промт для написания документации к модулю

Задача: Автоматически сгенерировать README.md для модуля Terraform.

Промт:

Вот код модуля Terraform для [описание модуля]. Сгенерируй README.md в формате:
- Название модуля.
- Описание назначения.
- Таблица с входными переменными (имя, тип, описание, значение по умолчанию).
- Таблица с выходными значениями (имя, описание).
- Пример использования (HCL код).
- Требования к версиям Terraform и провайдеров.
Используй код из файлов: main.tf: [вставь код], variables.tf: [вставь код], outputs.tf: [вставь код].

Пример использования: После генерации вы получаете готовый README, который можно опубликовать в Terraform Registry или Git-репозитории.

5. Промт для миграции state из локального в S3

Задача: Подготовить пошаговый план миграции state-файла из локальной файловой системы в удалённый бэкенд S3 с блокировкой DynamoDB.

Промт:

У меня есть локальный state-файл terraform.tfstate. Нужно перенести его в S3 бэкенд. Напиши пошаговый план:
1. Создание S3 bucket с включённым versioning.
2. Создание DynamoDB таблицы для блокировки (ключ: LockID).
3. Команда terraform init -migrate-state.
4. Проверка, что state успешно загружен.
5. Добавление бэкенд-конфига в файл backend.tf с правильными параметрами.
Учти, что bucket уже существует: my-terraform-state-bucket, регион us-east-1.

Пример использования: Промт выдаёт готовые команды и конфиг. Это ускоряет миграцию с 30 минут до 5 минут.

6. Промт для генерации политик IAM для Terraform

Задача: Создать минимально необходимую IAM-политику для сервисной учётной записи, которая будет выполнять terraform apply.

Промт:

Сгенерируй IAM-политику (JSON) для AWS, которая позволяет выполнять операции terraform apply и terraform destroy для ресурсов: VPC, EC2, S3, RDS. Политика должна следовать принципу наименьших привилегий. Включи только необходимые действия: ec2:*, s3:*, rds:*, vpc:*. Добавь условие, что политика применяется только для ресурсов с тегом Environment = "production".

Пример использования: Полученную политику можно прикрепить к роли IAM и использовать в CI/CD пайплайне.

7. Промт для отладки ошибок в Terraform

Задача: Проанализировать ошибку выполнения terraform plan и предложить исправление.

Промт:

Вот вывод terraform plan с ошибкой: [вставь вывод]. Определи причину ошибки. Предложи конкретные исправления: изменения в конфиге, обновление провайдера, изменение state. Также дай команду для проверки исправления (например, terraform validate).

Пример использования: Промт помогает быстро найти, что ошибка связана с несовместимостью версии провайдера, и предлагает обновить версию в required_providers.

8. Промт для создания модуля multi-region (AWS)

Задача: Создать модуль, который развёртывает одинаковую инфраструктуру в нескольких регионах AWS.

Промт:

Создай модуль Terraform для развёртывания EC2 инстанса в нескольких регионах AWS. Модуль должен:
- Принимать список регионов: regions = ["us-east-1", "eu-west-1", "ap-southeast-1"].
- Для каждого региона создавать VPC, подсеть, security group и EC2 инстанс (t3.micro).
- Использовать for_each или count для итерации по регионам.
- Вывести список public IP всех инстансов.
Используй провайдер AWS с alias для каждого региона.

Пример использования: Модуль позволяет управлять мультирегиональной инфраструктурой из одного конфига, что критично для глобальных приложений.

9. Промт для автоматического исправления форматирования

Задача: Привести все .tf файлы в директории к единому стилю и проверить на синтаксические ошибки.

Промт:

У меня есть директория с Terraform файлами. Напиши bash-скрипт, который:
1. Проходит по всем .tf файлам рекурсивно.
2. Запускает terraform fmt для каждого файла.
3. После форматирования запускает terraform validate для каждого файла.
4. Если validate проходит успешно, выводит "OK", иначе выводит ошибку.
Скрипт должен быть совместим с Linux и macOS.

Пример использования: Скрипт можно добавить в pre-commit хук, чтобы автоматически форматировать код перед коммитом.

10. Промт для генерации Terraform-конфигурации из существующей инфраструктуры

Задача: Импортировать существующие ресурсы AWS в Terraform и сгенерировать конфиг.

Промт:

У меня есть существующая инфраструктура AWS: VPC (id: vpc-12345), EC2 инстанс (id: i-67890), S3 bucket (name: my-bucket). Создай конфигурацию Terraform, которая описывает эти ресурсы. Для каждого ресурса укажи все обязательные атрибуты, которые можно получить из AWS Console. Затем напиши команды terraform import для каждого ресурса. Используй провайдер AWS ~> 5.0.

Пример использования: Промт генерирует конфиг и команды импорта, что позволяет перенести существующую инфраструктуру под управление Terraform за минуты.

Заключение

Эти 10 промтов покрывают 80% повседневных задач Terraform-инженера: от создания модулей до multi-cloud и миграции state. Сохраните их в свою шпаргалку и адаптируйте под свои проекты. Помните: промты — это инструмент, а не замена пониманию IaC. Всегда проверяйте сгенерированный код на тестовой среде перед применением в production. Удачной инфраструктуры!

← Все статьи

Комментарии

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

10 промтов для отладки и поиска багов в коде: чек-лист для разработчика

15 июля 2026

Освоение OSCP (PEN-200) в 2026 году: как обучение с ИИ готовит к реальному тестированию на проникновение

15 июля 2026

Как ИИ-агент преобразил наши развертывания на Netlify: от ручного кошмара до DevOps без кода за минуты

15 июля 2026

120 выдуманных ссылок против 8: что агентный поиск делает с галлюцинациями LLM на строительных нормах

15 июля 2026

Почему Full-Stack AI Engineering — самый востребованный навык 2026 года и как его освоить

15 июля 2026

Без кода и пайки: как подключить шаговый двигатель (A4988, TMC2209) к AI-агенту ASI Biont для робототехники и автоматизации

15 июля 2026

Мастер производственного мониторинга: почему курс по наблюдаемости (Prometheus, Grafana) на ASI Biont — ваш следующий шаг

15 июля 2026

Как освоить таргетинг и рекламу в 2026 году: обзор курса на Asibiont.com с AI-обучением

15 июля 2026

10 промтов для Low-Code и No-Code: Airtable, Bubble, Retool — ускорьте разработку в 2026

15 июля 2026