Навыки terraform-aws-modules
📦

terraform-aws-modules

Безопасно

Создание production-ready модулей Terraform для AWS

Создание повторно используемой инфраструктуры Terraform — это сложная и подверженная ошибкам задача. Этот навык предоставляет экспертное руководство по проектированию модулей, управлению состоянием и production шаблонам HCL для AWS.

Поддерживает: Claude Codex Code(CC)
📊 71 Адекватно
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «terraform-aws-modules». Создать повторно используемый модуль кластера EKS с правильными определениями переменных

Ожидаемый результат:

Предо��тавляет полную структуру модуля с variables.tf, определяющим cluster_name, node_count и instance_type с правилами валидации, main.tf с ресурсами aws_eks_cluster и aws_eks_node_group, использующими for_each для групп узлов, outputs.tf, экспортирующим endpoint кластера и ARN групп узлов, и versions.tf, фиксирующим aws провайдер версии >= 4.0

Использование «terraform-aws-modules». Настроить блокировку состояния для production окружения

Ожидаемый результат:

Возвращает конфигурацию S3 бэкенда с бакетом terraform-state-prod, ключом env/prod/terraform.tfstate, регионом us-east-1, таблицей DynamoDB tf-state-lock, включённым шифрованием, плюс инструкции для начального импорта состояния и политики доступа команды

Аудит безопасности

Безопасно
v1 • 2/25/2026

Static analysis detected 25 patterns but all are false positives. External command references are Terraform CLI documentation examples (terraform fmt, validate, plan, force-unlock), not executable code. The CIDR block 10.0.0.0/16 is standard RFC1918 private networking for VPC configuration. This is documentation-only content with no executable code.

1
Просканировано файлов
80
Проанализировано строк
0
находки
1
Всего аудитов
Проблем безопасности не найдено
Проверено: claude

Оценка качества

38
Архитектура
100
Сопровождаемость
87
Контент
32
Сообщество
100
Безопасность
91
Соответствие спецификации

Что вы можете построить

DevOps инженер создаёт модули VPC

Создать повторно используемый модуль VPC с правильными определениями переменных, выходами и стратегией тегирования для последовательного развёртывания сетей в разных окружениях.

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

Настроить S3 бэкенд с блокировкой DynamoDB для production состояния Terraform, обеспечивая безопасные параллельные операции и шифрование состояния.

Разработчик мигрирует с CloudFormation

Перевести существующие шаблоны CloudFormation в Terraform HCL с правильной структурой модулей и управлением состоянием с самого начала.

Попробуйте эти промпты

Создать базовую структуру модуля
Создать структуру модуля Terraform для S3 бакета AWS с включённым версионированием. Включить variables.tf для имени бакета и флага версионирования, main.tf с ресурсом, outputs.tf для ARN и имени бакета, и versions.tf с фиксацией версии AWS провайдера.
Проверить модуль на соответствие лучшим практикам
Проверить этот модуль Terraform на соответствие лучшим практикам и наличие проблем безопасности. Проверить правильность валидации переменных, маркировки чувствительных выходов, фиксации версии провайдера и последовательной стратегии тегирования.
Спроектировать стратегию удалённого состояния
Спроектировать конфигурацию бэкенда удалённого состояния для команды с окружениями dev, staging и production. Использовать S3 для хранения с блокировкой DynamoDB. Включить отдельные ключи состояния для каждого окружения и включить шифрование.
Миграция с Count на For_Each
Рефакторить эту конфигурацию Terraform для использования for_each вместо count для управления несколькими подсетями. Текущий код использует count с индексацией списка, что вызывает проблемы при удалении средних элементов. Сохранить все существующие атрибуты.

Лучшие практики

  • Фиксируйте версии провайдеров и модулей в versions.tf для предотвращения критических изменений при обновлениях
  • Используйте for_each вместо count, когда идентификация ресурса должна оставаться стабильной при применении изменений
  • Храните удалённое состояние в S3 с блокировкой DynamoDB и включите шифрование на стороне сервера

Избегать

  • Использование count для ресурсов, где могут удаляться средние элементы, что вызывает ненужное пересоздание
  • Коммит файлов .tfstate в систему контроля версий, что раскрывает чувствительные данные ресурсов
  • Ссылки на состояние из других конфигураций без использования источника данных terraform_remote_state

Часто задаваемые вопросы

Как обрабатывать ошибки блокировки состояния после неудачного применения Terraform?
Сначала убедитесь, что другие операции не выполняются. Затем используйте terraform force-unlock с ID блокировки из сообщения об ошибке. Всегда подтверждайте, что предыдущая операция действительно не удалась, прежде чем принудительно разблокировать.
Следует ли использовать один файл состояния или отдельные состояния для каждого окружения?
Используйте отдельные файлы состояния для каждого окружения (dev, staging, prod) с разными ключами в одном S3 бакете. Это обеспечивает изоляцию при сохранении простоты управления состоянием и позволяет независимый жизненный цикл для каждого окружения.
Как управлять секретами в переменных Terraform?
Пометьте чувствительные переменные с помощью sensitive = true в variables.tf. Храните фактические значения в AWS Secrets Manager или SSM Parameter Store и ссылайтесь на них через источники данных. Никогда не коммитьте значения переменных с секретами в систему контроля версий.
В чём разница между count и for_each в Terraform?
Count использует числовые индексы, которые сдвигаются при удалении элементов, вызывая пересоздание ресурсов. For_each использует стабильные строковые или объектные ключи, сохраняя идентификацию ресурсов при изменении других элементов. Предпочтительнее использовать for_each в большинстве случаев.
Как импортировать существующие ресурсы AWS в состояние Terraform?
Сначала определите ресурс в вашем HCL, затем запустите terraform import с адресом ресурса и ID ресурса AWS. Для сложного импорта рассмотрите возможность использования terraform import с -generate-config для автоматической генерации конфигурации.
Можно ли использовать этот навык для инфраструктуры Azure или GCP?
Этот навык специализируется на шаблонах провайдера AWS. Хотя общие концепции Terraform применимы к Azure и GCP, специфичные для провайдера ресурсы и лучшие практики различаются. Используйте специфичное для провайдера руководство для инфраструктуры, не относящейся к AWS.

Сведения для разработчиков

Автор

sickn33

Лицензия

MIT

Ссылка

main

Структура файлов

📄 SKILL.md