スキル一覧に戻る
pluginagentmarketplace

terraform-workspace

by pluginagentmarketplace

Terraform plugin for infrastructure as code and provisioning

1🍴 0📅 2026年1月7日
GitHubで見るManusで実行

SKILL.md


name: terraform-workspace description: Terraform workspace management for multi-environment deployments sasmp_version: "1.3.0" version: "2.0.0" bonded_agent: 03-terraform-state bond_type: SECONDARY_BOND

Terraform Workspace Skill

Manage multiple environments with Terraform workspaces.

Workspace Commands

# List workspaces
terraform workspace list

# Create workspace
terraform workspace new dev
terraform workspace new staging
terraform workspace new prod

# Switch workspace
terraform workspace select prod

# Show current
terraform workspace show

# Delete workspace
terraform workspace delete dev

Configuration Patterns

Environment-Specific Variables

locals {
  env_config = {
    dev = {
      instance_type = "t3.micro"
      min_size      = 1
      max_size      = 2
    }
    staging = {
      instance_type = "t3.small"
      min_size      = 2
      max_size      = 4
    }
    prod = {
      instance_type = "t3.medium"
      min_size      = 3
      max_size      = 10
    }
  }

  config = local.env_config[terraform.workspace]
}

resource "aws_autoscaling_group" "app" {
  min_size = local.config.min_size
  max_size = local.config.max_size
  # ...
}

Workspace-Aware Naming

locals {
  name_prefix = "${var.project}-${terraform.workspace}"
}

resource "aws_vpc" "main" {
  cidr_block = var.vpc_cidr

  tags = {
    Name        = "${local.name_prefix}-vpc"
    Environment = terraform.workspace
  }
}

Conditional Resources

resource "aws_cloudwatch_alarm" "cpu" {
  count = terraform.workspace == "prod" ? 1 : 0

  alarm_name = "${local.name_prefix}-cpu-alarm"
  # ...
}

resource "aws_db_instance" "main" {
  multi_az            = terraform.workspace == "prod"
  deletion_protection = terraform.workspace == "prod"
  # ...
}

Backend Configuration

S3 with Workspace Prefix

terraform {
  backend "s3" {
    bucket               = "company-terraform-state"
    key                  = "app/terraform.tfstate"
    region               = "us-east-1"
    workspace_key_prefix = "workspaces"
    dynamodb_table       = "terraform-locks"
  }
}
# State paths:
# - workspaces/dev/app/terraform.tfstate
# - workspaces/prod/app/terraform.tfstate

Directory-Based Alternative

infrastructure/
├── modules/
│   └── app/
├── environments/
│   ├── dev/
│   │   ├── main.tf
│   │   ├── backend.tf
│   │   └── terraform.tfvars
│   ├── staging/
│   │   └── ...
│   └── prod/
│       └── ...
# environments/prod/main.tf
module "app" {
  source = "../../modules/app"

  environment   = "prod"
  instance_type = "t3.medium"
  min_size      = 3
}

Best Practices

ApproachUse CaseProsCons
WorkspacesSimple environmentsSingle codebaseSame config
DirectoriesComplex differencesFull customizationCode duplication
HybridMixed needsFlexibleMore complexity

Troubleshooting

ErrorCauseSolution
Workspace not foundNot createdterraform workspace new
State mismatchWrong workspaceCheck terraform workspace show
Cannot deleteHas resourcesDestroy first or use -force

Usage

Skill("terraform-workspace")
  • Agent: 03-terraform-state (SECONDARY_BOND)
  • Skill: terraform-state (PRIMARY on same agent)

スコア

総合スコア

60/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です