вариант

terraform-module-library

amurata/cc-tools amurata/cc-tools

В соответствии с передовыми практиками «Инфраструктура как код» (IaC) мы создаем многократно используемые модули Terraform для инфраструктуры AWS, Azure и GCP. Их используют при создании инфраструктурных модулей, стандартизации развертывания облачных ресурсов и внедрении многократно используемых компонентов IaC.

...Расширить все
50
Обновлено время 29 июня 2026 г.

О terraform-module-library

Набор навыков « terraform-module-library » представляет собой структурированную коллекцию готовых к повторному использованию модулей Terraform, предназначенных для развертывания инфраструктуры, готовой к производственному использованию, в AWS, Azure и GCP. Он решает проблемы, связанные с последовательным управлением облачной инфраструктурой, предлагая стандартизированные шаблоны для таких распространенных компонентов, как виртуальные частные сети (VPC), кластеры Kubernetes, базы данных и службы хранения данных. Следуя лучшим практикам «инфраструктуры как кода», этот набор упрощает создание, тестирование и обслуживание облачных сред, снижая риск ошибок в настройке и обеспечивая воспроизводимость развертываний у различных облачных провайдеров.

Ключевые особенности включают хорошо организованную структуру модулей с отдельными каталогами для каждого облачного провайдера и подкаталогами для отдельных ресурсов, таких как VPC, RDS, S3, AKS, GKE и Cloud SQL. Каждый модуль следует единому шаблону, включающему основные ресурсы Terraform, входные переменные, выходные данные, примеры, фиксацию версий и файлы тестирования. Модули включают проверку входных данных, семантическое управление версиями, интеграцию с Terratest и стандарты тегирования для обеспечения надёжности и отслеживаемости. Кроме того, примеры конфигураций демонстрируют практические реализации, что упрощает внедрение и интеграцию в существующие инфраструктурные конвейеры.

Этот навык идеально подходит для инженеров DevOps, облачных архитекторов и инфраструктурных команд, стремящихся стандартизировать процессы развертывания и создавать многократно используемые и удобные в обслуживании модули Terraform. Он поддерживает такие сценарии, как мультиоблачные развертывания, установление организационных стандартов Terraform, создание многократно используемых компонентов инфраструктуры и обеспечение соответствия лучшим практикам. Этот навык будет особенно полезен организациям, стремящимся ускорить переход на облачные технологии при одновременном обеспечении операционной согласованности.

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

Какие облачные провайдеры поддерживаются набором навыков « terraform-module-library »?

Этот набор навыков предоставляет многократно используемые модули Terraform для AWS, Azure и GCP, охватывающие общие компоненты инфраструктуры для каждого провайдера.

Можно ли использовать эти модули в производственных средах?

Да, модули разработаны с учетом требований производственной среды и соответствуют передовым практикам, включая проверку входных данных, тегирование, фиксацию версий и тестирование с помощью Terratest.

Как построены и организованы модули?

Модули сгруппированы по облачным провайдерам и типам ресурсов и имеют стандартную структуру, включающую файлы main.tf, variables.tf, outputs.tf, versions.tf, README.md, примеры и тесты.

Поддерживают ли модули мультиоблачные развертывания?

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

Существуют ли какие-либо требования к использованию этих модулей?

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

Посмотреть на GitHub

English | 日本語

Terraformモジュールライブラリ

AWS、Azure、GCPインフラ用の本番環境対応Terraformモジュールパターン。

目的

複数のクラウドプロバイダーにまたがる一般的なクラウドインフラパターン用の再利用可能で、十分にテストされたTerraformモジュールを作成します。

使用タイミング

  • 再利用可能なインフラコンポーネントの構築
  • クラウドリソースプロビジョニングの標準化
  • Infrastructure as Codeベストプラクティスの実装
  • マルチクラウド互換モジュールの作成
  • 組織のTerraform標準の確立

モジュール構造

terraform-modules/├── aws/│   ├── vpc/│   ├── eks/│   ├── rds/│   └── s3/├── azure/│   ├── vnet/│   ├── aks/│   └── storage/└── gcp/    ├── vpc/    ├── gke/    └── cloud-sql/

標準モジュールパターン

module-name/├── main.tf          # メインリソース├── variables.tf     # 入力変数├── outputs.tf       # 出力値├── versions.tf      # プロバイダーバージョン├── README.md        # ドキュメント├── examples/        # 使用例│   └── complete/│       ├── main.tf│       └── variables.tf└── tests/           # Terratestファイル    └── module_test.go

AWS VPCモジュール例

main.tf:

resource "aws_vpc" "main" {  cidr_block           = var.cidr_block  enable_dns_hostnames = var.enable_dns_hostnames  enable_dns_support   = var.enable_dns_support  tags = merge(    {      Name = var.name    },    var.tags  )}resource "aws_subnet" "private" {  count             = length(var.private_subnet_cidrs)  vpc_id            = aws_vpc.main.id  cidr_block        = var.private_subnet_cidrs[count.index]  availability_zone = var.availability_zones[count.index]  tags = merge(    {      Name = "${var.name}-private-${count.index + 1}"      Tier = "private"    },    var.tags  )}resource "aws_internet_gateway" "main" {  count  = var.create_internet_gateway ? 1 : 0  vpc_id = aws_vpc.main.id  tags = merge(    {      Name = "${var.name}-igw"    },    var.tags  )}

variables.tf:

variable "name" {  description = "VPCの名前"  type        = string}variable "cidr_block" {  description = "VPC用CIDRブロック"  type        = string  validation {    condition     = can(regex("^([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}$", var.cidr_block))    error_message = "CIDRブロックは有効なIPv4 CIDR表記でなければなりません。"  }}variable "availability_zones" {  description = "アベイラビリティゾーンのリスト"  type        = list(string)}variable "private_subnet_cidrs" {  description = "プライベートサブネット用CIDRブロック"  type        = list(string)  default     = []}variable "enable_dns_hostnames" {  description = "VPCでDNSホスト名を有効化"  type        = bool  default     = true}variable "tags" {  description = "追加タグ"  type        = map(string)  default     = {}}

outputs.tf:

output "vpc_id" {  description = "VPCのID"  value       = aws_vpc.main.id}output "private_subnet_ids" {  description = "プライベートサブネットのID"  value       = aws_subnet.private[*].id}output "vpc_cidr_block" {  description = "VPCのCIDRブロック"  value       = aws_vpc.main.cidr_block}

ベストプラクティス

  1. モジュールにセマンティックバージョニングを使用
  2. 説明付きですべての変数を文書化
  3. examples/ディレクトリに例を提供
  4. 入力検証に検証ブロックを使用
  5. モジュール構成のために重要な属性を出力
  6. versions.tfでプロバイダーバージョンをピン
  7. 計算値にlocalsを使用
  8. count/for_eachで条件付きリソースを実装
  9. Terratestでモジュールをテスト
  10. すべてのリソースに一貫してタグ付け

モジュール構成

module "vpc" {  source = "../../modules/aws/vpc"  name               = "production"  cidr_block         = "10.0.0.0/16"  availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]  private_subnet_cidrs = [    "10.0.1.0/24",    "10.0.2.0/24",    "10.0.3.0/24"  ]  tags = {    Environment = "production"    ManagedBy   = "terraform"  }}module "rds" {  source = "../../modules/aws/rds"  identifier     = "production-db"  engine         = "postgres"  engine_version = "15.3"  instance_class = "db.t3.large"  vpc_id     = module.vpc.vpc_id  subnet_ids = module.vpc.private_subnet_ids  tags = {    Environment = "production"  }}

参照ファイル

  • assets/vpc-module/ - 完全なVPCモジュール例
  • assets/rds-module/ - RDSモジュール例
  • references/aws-modules.md - AWSモジュールパターン
  • references/azure-modules.md - Azureモジュールパターン
  • references/gcp-modules.md - GCPモジュールパターン

テスト

// tests/vpc_test.gopackage testimport (    "testing"    "github.com/gruntwork-io/terratest/modules/terraform"    "github.com/stretchr/testify/assert")func TestVPCModule(t *testing.T) {    terraformOptions := &terraform.Options{        TerraformDir: "../examples/complete",    }    defer terraform.Destroy(t, terraformOptions)    terraform.InitAndApply(t, terraformOptions)    vpcID := terraform.Output(t, terraformOptions, "vpc_id")    assert.NotEmpty(t, vpcID)}

関連スキル

  • multi-cloud-architecture - アーキテクチャ決定用
  • cost-optimization - コスト効率的な設計用

Все файлы

1 файлов

Установить terraform-module-library

Скачайте файлы навыков и распакуйте их в каталог .claude/skills/.

Скачать ZIP

Клонируйте репозиторий и скопируйте файлы навыка в свой проект.

git clone https://github.com/amurata/cc-tools/blob/main/i18n/ja/plugins/cloud-infrastructure/skills/terraform-module-library/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

Копировать Копировать
Быстрая настройка: Скопируйте папку со скиллом в каталог .claude/skills/ — Claude автоматически обнаружит и начнет использовать этот скилл
Репозиторий amurata/cc-tools

Похожие навыки

Cloudflare Manager
Обновлено время 29 июня 2026 г.
netlify-forms
Обновлено время 23 августа 2026 г.
pinecone
Обновлено время 29 июня 2026 г.
azure-setup-guide
Обновлено время 29 июня 2026 г.
OR