infrastructure-terraform について
Infrastructure Terraform は、Terraform による IaC 設定の作成と運用を支援するスキルです。HCL、ステート、プロバイダー、モジュールを扱う実務者向けに、計画・確認・適用の流れやローカルでのデバッグを扱います。
主な機能
- 01宣言型 HCL 設定
- 02ステートとリモートバックエンドの管理
- 03プロバイダーとモジュールの設計
- 04計画・確認・適用のワークフロー
- 05ステートのデバッグとインポート
- 06フォーマットと検証コマンド
活用シーン
- 01再利用可能な Terraform モジュールの設計
- 02変更適用前のインフラ計画の確認
- 03ドリフトの調査や Terraform ステートの復旧
- 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 のワークフローを習得
インフラストラクチャのプロビジョニング手順
- まず plan を実行:必ず
terraform planを生成し、変更前に慎重に確認します - モジュール化:インフラストラクチャを再利用可能で組み合わせ可能なモジュールに分割します
- 状態を保護:状態ファイルを保護するため、ロック機能付きのリモートバックエンドを使用します
- パラメーター化:変数と出力を使用し、柔軟で構成可能なインフラストラクチャにします
- 慎重に破棄:
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 | 警告を簡潔な形式で表示します |
-json | JSON 形式で出力します |
-out=FILE | plan をファイルに保存します |
-target=RESOURCE | 特定のリソースを対象にします |
-refresh-only | 状態のみを更新し、変更は行いません |
詳細なデバッグパターン、高度なモジュール設計、CI/CD 統合、トラブルシューティングの方法については、REFERENCE.md を参照してください。
コメント
Markdown 対応