opción
HogarHogar Skill Infraestructura de la nube terraform-module-library

terraform-module-library

amurata/cc-tools amurata/cc-tools

Siguiendo las mejores prácticas de «Infraestructura como código» (IaC), crearemos módulos de Terraform reutilizables para la infraestructura de AWS, Azure y GCP. Estos módulos se utilizarán para crear módulos de infraestructura, estandarizar el aprovisionamiento en la nube e implementar componentes de IaC reutilizables.

...Expandir todo
50
Tiempo actualizado 29 de junio de 2026

Acerca de terraform-module-library

La habilidad « terraform-module-library » ofrece una colección estructurada de módulos de Terraform reutilizables, diseñados para implementar infraestructuras listas para producción en AWS, Azure y GCP. Aborda los retos que plantea la gestión coherente de la infraestructura en la nube al ofrecer patrones estandarizados para componentes comunes como VPC, clústeres de Kubernetes, bases de datos y servicios de almacenamiento. Al seguir las mejores prácticas de «Infraestructura como código», esta skill simplifica la creación, las pruebas y el mantenimiento de entornos en la nube, reduciendo el riesgo de errores de configuración y garantizando implementaciones repetibles en múltiples proveedores de nube.

Entre sus características clave se incluyen estructuras de módulos bien organizadas, con directorios independientes para cada proveedor de nube y subdirectorios para recursos individuales como VPC, RDS, S3, AKS, GKE y Cloud SQL. Cada módulo sigue un patrón coherente que incluye los principales recursos de Terraform, variables de entrada, salidas, ejemplos, fijación de versiones y archivos de prueba. Los módulos incluyen validación de entradas, versionado semántico, integración con Terratest y normas de etiquetado para mantener la fiabilidad y la trazabilidad. Además, las configuraciones de ejemplo muestran implementaciones prácticas, lo que facilita su adopción e integración en los flujos de trabajo de infraestructura existentes.

Esta habilidad es ideal para ingenieros de DevOps, arquitectos de nube y equipos de infraestructura que deseen estandarizar los procesos de aprovisionamiento y crear módulos de Terraform reutilizables y fáciles de mantener. Es útil en escenarios como las implementaciones multicloud, el establecimiento de estándares organizativos de Terraform, la creación de componentes de infraestructura reutilizables y la garantía del cumplimiento de las mejores prácticas. Las organizaciones que busquen acelerar la adopción de la nube sin perder la coherencia operativa encontrarán esta habilidad especialmente útil.

Preguntas frecuentes

¿Qué proveedores de nube son compatibles con el curso « terraform-module-library »?

La habilidad proporciona módulos de Terraform reutilizables para AWS, Azure y GCP, que abarcan los componentes de infraestructura comunes de cada proveedor.

¿Se pueden utilizar estos módulos en entornos de producción?

Sí, los módulos están diseñados para estar listos para producción y siguen las mejores prácticas, incluyendo la validación de entradas, el etiquetado, la fijación de versiones y las pruebas con Terratest.

¿Cómo están estructurados y organizados los módulos?

Los módulos están organizados por proveedor de nube y tipo de recurso, siguiendo un patrón estándar que incluye main.tf, variables.tf, outputs.tf, versions.tf, README.md, ejemplos y pruebas.

¿Admiten los módulos implementaciones multicloud?

Sí, la herramienta está pensada para crear componentes reutilizables que puedan integrarse en múltiples proveedores de nube.

¿Hay algún requisito para utilizar estos módulos?

Los usuarios deben tener conocimientos prácticos de Terraform y de los servicios de los proveedores de nube. Los módulos dan por hecho que se dispone de acceso a las cuentas de nube pertinentes y de los permisos IAM adecuados.

Ver en 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 - コスト効率的な設計用

Todos los archivos

1 archivos
SKILL.md 6.2k
Ver

Instalar terraform-module-library

Descarga y descomprime los archivos de habilidades en tu directorio .claude/skills/.

Descargar ZIP

Clona el repositorio y copia los archivos de la habilidad a tu proyecto.

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

Copiar Copiar
Configuración rápida: Copia la carpeta de la habilidad en .claude/skills/. Claude la detectará automáticamente y la utilizará.
Repositorio amurata/cc-tools

Habilidades relacionadas

Cloudflare Manager
Tiempo actualizado 29 de junio de 2026
netlify-forms
Tiempo actualizado 23 de agosto de 2026
pinecone
Tiempo actualizado 29 de junio de 2026
azure-setup-guide
Tiempo actualizado 29 de junio de 2026
OR