mcpField
I
infrastructure-terraform

infrastructure-terraform

github.com/laurigatesクラウド・DevOps5961 回インストール1 日前に更新
リポジトリ

infrastructure-terraform について

Infrastructure Terraform は、Terraform による IaC 設定の作成と運用を支援するスキルです。HCL、ステート、プロバイダー、モジュールを扱う実務者向けに、計画・確認・適用の流れやローカルでのデバッグを扱います。

主な機能

  1. 01宣言型 HCL 設定
  2. 02ステートとリモートバックエンドの管理
  3. 03プロバイダーとモジュールの設計
  4. 04計画・確認・適用のワークフロー
  5. 05ステートのデバッグとインポート
  6. 06フォーマットと検証コマンド

活用シーン

  1. 01再利用可能な Terraform モジュールの設計
  2. 02変更適用前のインフラ計画の確認
  3. 03ドリフトの調査や Terraform ステートの復旧
  4. 04Terraform 設定の検証とフォーマット

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/laurigates/claude-plugins --skill infrastructure-terraform

インストール後、Claude Code で/infrastructure-terraformを入力して読み込まれたか確認します。

同梱ファイルREFERENCE.md

詳細

インフラストラクチャ Terraform

宣言型 HCL、状態管理、レジリエントなインフラストラクチャに重点を置いた、Terraform を使用する Infrastructure as Code の専門知識です。

このスキルを使用する場面

次のような場合は、このスキルを使用します次のような場合は、代わりに tfc-* の関連スキルを使用します
Terraform HCL 構成をローカルで作成または変更するAPI を使用して Terraform Cloud の実行状態を調べる(tfc-run-status)
バックエンドに対して terraform init/plan/apply/destroy を実行するTFC の plan/apply ログストリームを読み取る(tfc-run-logs)
モジュール構成、プロバイダー、またはリモートバックエンドを設計するTFC の実行から構造化された plan JSON を分析する(tfc-plan-json)
ローカルの状態、ドリフト、またはインポートのワークフローをデバッグするTFC の実行履歴を一覧表示または絞り込む(tfc-list-runs、tfc-workspace-runs)

主な専門知識

Terraform と IaC

  • 宣言型インフラストラクチャ:クリーンで、モジュール化され、再利用可能な HCL コード
  • 状態管理:リモートバックエンドを使用した Terraform の状態の保護と管理
  • プロバイダーとモジュール:コミュニティ製およびカスタムのプロバイダー/モジュールの活用
  • 実行ライフサイクル:plan → review → apply のワークフローを習得

インフラストラクチャのプロビジョニング手順

  1. まず plan を実行:必ず terraform plan を生成し、変更前に慎重に確認します
  2. モジュール化:インフラストラクチャを再利用可能で組み合わせ可能なモジュールに分割します
  3. 状態を保護:状態ファイルを保護するため、ロック機能付きのリモートバックエンドを使用します
  4. パラメーター化:変数と出力を使用し、柔軟で構成可能なインフラストラクチャにします
  5. 慎重に破棄:terraform destroy を実行する前に、plan を再確認します

基本コマンド

# Core workflow
terraform init                   # Initialize working directory
terraform plan                   # Generate execution plan
terraform apply                  # Apply changes
terraform destroy               # Destroy infrastructure

# State management
terraform state list            # List all resources
terraform state show <resource> # Show specific resource
terraform state pull > backup.tfstate  # Backup state

# Validation and formatting
terraform validate              # Validate configuration
terraform fmt -recursive        # Format all files recursively
terraform fmt path/to/dir       # Format specific directory
terraform graph | dot -Tsvg > graph.svg  # Dependency graph

# Working with directories (use -chdir to stay in repo root)
terraform -chdir=gcp fmt        # Format files in gcp/ directory
terraform -chdir=gcp validate   # Validate gcp/ configuration
terraform -chdir=gcp plan       # Plan from specific directory
terraform -chdir=modules/vpc init  # Init module directory

# Debugging
export TF_LOG=DEBUG             # Enable debug logging
terraform plan -out=tfplan      # Save plan for review
terraform show tfplan           # View saved plan

ベストプラクティス

モジュール構成

module "vpc" {
  source  = "./modules/vpc"
  version = "1.0.0"

  vpc_cidr = var.vpc_cidr
  environment = var.environment
}

output "vpc_id" {
  value = module.vpc.vpc_id
}

変数の構成

variable "environment" {
  description = "Environment name"
  type        = string
  validation {
    condition     = contains(["dev", "staging", "prod"], var.environment)
    error_message = "Environment must be dev, staging, or prod."
  }
}

リモート状態バックエンド

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

プロバイダーの構成

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
  required_version = ">= 1.5"
}

主なデバッグ手法

状態のデバッグ

# State inspection
terraform state list
terraform state show aws_instance.web

# State recovery
terraform refresh
terraform plan -refresh-only
terraform import aws_instance.existing i-1234567890

エラーの解決

# Provider errors
terraform init -upgrade
terraform init -reconfigure

# Resource conflicts
terraform taint aws_instance.broken
terraform apply -target=aws_instance.web

エージェント向けの最適化

コンテキストコマンド
ディレクトリをフォーマットterraform -chdir=path/to/dir fmt
フォーマットを確認(CI)terraform fmt -check -recursive
構成を検証terraform -chdir=path/to/dir validate
plan を簡潔に表示terraform plan -compact-warnings
JSON 形式で plan を出力terraform plan -out=plan.tfplan && terraform show -json plan.tfplan
リソースを一覧表示terraform state list

クイックリファレンス

フラグ説明
-chdir=DIRコマンドの実行前に DIR に移動します
-recursiveディレクトリを再帰的に処理します
-check変更せずにフォーマットを確認します(CI)
-compact-warnings警告を簡潔な形式で表示します
-jsonJSON 形式で出力します
-out=FILEplan をファイルに保存します
-target=RESOURCE特定のリソースを対象にします
-refresh-only状態のみを更新し、変更は行いません

詳細なデバッグパターン、高度なモジュール設計、CI/CD 統合、トラブルシューティングの方法については、REFERENCE.md を参照してください。

コメント