mcpField
S
setting-up-terraform

setting-up-terraform

github.com/revitalb-portクラウド・DevOps047 回インストール10 週間前に更新
リポジトリ

setting-up-terraform について

Terraform プロジェクトの構成を整え、AWS、GCP、Azure 向けのインフラストラクチャ構成を案内するスキルです。再利用可能なモジュール、状態管理、CI 検証ワークフローを扱います。

主な機能

  1. 01Terraform プロジェクト構成
  2. 02プロバイダーと変数の設定
  3. 03再利用可能なインフラモジュール
  4. 04リモート状態とロック
  5. 05CI チェックとデプロイワークフロー

活用シーン

  1. 01クラウドインフラプロジェクトの開始
  2. 02開発・ステージング・本番の状態分離
  3. 03Pull Request への Terraform チェック追加

インストール

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

$npx skills add https://github.com/revitalb-port/skills-registry-demo --skill setting-up-terraform

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

詳細

Terraform のセットアップ

ユーザーから Terraform、Infrastructure as Code、クラウドのプロビジョニング、または IaC のセットアップを依頼された場合に、このスキルを使用します。

手順

  1. プロジェクト構成を初期化します

    infra/
    ├── main.tf
    ├── variables.tf
    ├── outputs.tf
    ├── terraform.tfvars      # (gitignored)
    ├── providers.tf
    └── modules/
    
  2. プロバイダーを設定します — providers.tf 内で設定します。

    terraform {
      required_version = ">= 1.5"
      required_providers {
        aws = {
          source  = "hashicorp/aws"
          version = "~> 5.0"
        }
      }
      backend "s3" {
        bucket = "my-terraform-state"
        key    = "prod/terraform.tfstate"
        region = "us-east-1"
      }
    }
    
    provider "aws" {
      region = var.aws_region
    }
    

    ユーザーのクラウド(AWS、GCP、Azure)に合わせてプロバイダーを調整します。

  3. 変数を定義します — variables.tf 内で、型、説明、デフォルト値を指定して入力を定義します。

    variable "aws_region" {
      type        = string
      default     = "us-east-1"
      description = "AWS region for resources"
    }
    
    variable "environment" {
      type        = string
      description = "Deployment environment (dev, staging, prod)"
    }
    
  4. リソースを作成します — main.tf 内で、ユーザーが必要とするインフラストラクチャ(VPC、RDS、ECS、S3、Lambda など)を定義します。再利用可能なパターンは modules/ 配下のモジュールに切り出します。

  5. リモートステートを設定します — ステートには S3 バケット(AWS)、GCS バケット(GCP)、または Azure Storage を使用します。DynamoDB(AWS)でステートロックを有効にします。

  6. .gitignore に追加します

    *.tfstate
    *.tfstate.*
    .terraform/
    terraform.tfvars
    *.tfvars
    
  7. CI パイプラインを追加します — PR で terraform fmt -check、terraform validate、terraform plan を実行し、承認ゲートを設けて main へのマージ時に terraform apply を実行する GitHub Actions ワークフローを作成します。

注意事項

  • ステートファイルや、シークレットを含む .tfvars は絶対にコミットしないでください。
  • ワークスペースまたは個別のステートファイルを使用して、dev/staging/prod を分けてください。
  • 破壊的変更を避けるため、プロバイダーのバージョンを固定してください。
  • コミットする前に terraform fmt を実行してください。

コメント