Token导航 LogoToken导航TokenDH.com
运维和基础设施需要联网github未标认证来源可访问clear审计提醒

terraform-modulesTerraform modules ORM

Agent Skill

用于辅助云资源、部署、容器、基础设施和运维自动化任务。它适合让 Agent 检查配置、整理部署步骤、分析资源状态、生成排障思路或辅助云服务接入。使用时需要明确目标环境、账号权限、区域和资源组,区分本地测试与生产操作;涉及删除资源、重启服务、修改网络或权限配置时,应先确认影响范围。

总安装

447

周安装

19

GitHub Stars

142

下载量

157
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:terraform-modules(Terraform modules ORM)
来源仓库:https://github.com/thebushidocollective/han
仓库路径:skills/terraform-modules
安装命令:
npx skills add https://github.com/thebushidocollective/han --skill terraform-modules
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/thebushidocollective/han --skill terraform-modules

简介

提供 Terraform modules 的 ORM 支持,简化模块管理和状态操作。

  • 适合用于模块注册、依赖解析和版本控制等运维任务。
  • 通过 GitHub 安装后,在 Codex、Claude、Cursor、Gemini CLI 中使用相关命令管理模块实例。
  • 需明确目标环境、账号权限及区域信息,区分本地测试与生产部署流程。
  • terraform-modules 属于运维和基础设施类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Terraform Modules

Creating and using reusable Terraform modules.

Module Structure

modules/vpc/
├── main.tf
├── variables.tf
├── outputs.tf
└── README.md

Creating a Module

main.tf

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

  tags = merge(var.tags, {
    Name = var.name
  })
}

resource "aws_subnet" "public" {
  count             = length(var.public_subnets)
  vpc_id            = aws_vpc.main.id
  cidr_block        = var.public_subnets[count.index]
  availability_zone = var.availability_zones[count.index]

  tags = merge(var.tags, {
    Name = "${var.name}-public-${count.index + 1}"
  })
}

variables.tf

variable "name" {
  description = "VPC name"
  type        = string
}

variable "cidr_block" {
  description = "VPC CIDR block"
  type        = string
}

variable "public_subnets" {
  description = "Public subnet CIDR blocks"
  type        = list(string)
  default     = []
}

variable "tags" {
  description = "Resource tags"
  type        = map(string)
  default     = {}
}

outputs.tf

output "vpc_id" {
  description = "VPC ID"
  value       = aws_vpc.main.id
}

output "public_subnet_ids" {
  description = "Public subnet IDs"
  value       = aws_subnet.public[*].id
}

Using Modules

Local Module

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

  name        = "production-vpc"
  cidr_block  = "10.0.0.0/16"
  public_subnets = [
    "10.0.1.0/24",
    "10.0.2.0/24",
  ]

  tags = {
    Environment = "production"
  }
}

# Access module outputs
resource "aws_instance" "web" {
  subnet_id = module.vpc.public_subnet_ids[0]
}

Registry Module

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "5.0.0"

  name = "my-vpc"
  cidr = "10.0.0.0/16"

  azs             = ["us-east-1a", "us-east-1b"]
  private_subnets = ["10.0.1.0/24", "10.0.2.0/24"]
  public_subnets  = ["10.0.101.0/24", "10.0.102.0/24"]

  enable_nat_gateway = true
  enable_vpn_gateway = false
}

Git Module

module "vpc" {
  source = "git::https://github.com/org/terraform-modules.git//vpc?ref=v1.0.0"

  name = "my-vpc"
  # ...
}

Module Composition

module "network" {
  source = "./modules/network"
  name   = var.name
}

module "compute" {
  source    = "./modules/compute"
  vpc_id    = module.network.vpc_id
  subnet_id = module.network.subnet_ids[0]
}

module "database" {
  source     = "./modules/database"
  vpc_id     = module.network.vpc_id
  subnet_ids = module.network.private_subnet_ids
}

For_each with Modules

variable "applications" {
  type = map(object({
    instance_type = string
    ami_id        = string
  }))
}

module "application" {
  for_each = var.applications
  source   = "./modules/application"

  name          = each.key
  instance_type = each.value.instance_type
  ami_id        = each.value.ami_id
}

Count with Modules

module "worker" {
  count  = var.worker_count
  source = "./modules/worker"

  name  = "worker-${count.index + 1}"
  index = count.index
}

Module Best Practices

Version Pinning

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "~> 5.0"  # Allow patch updates
}

Input Validation

variable "environment" {
  type = string

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

Output Everything Useful

output "vpc_id" {
  value = aws_vpc.main.id
}

output "vpc_cidr" {
  value = aws_vpc.main.cidr_block
}

output "subnet_ids" {
  value = aws_subnet.main[*].id
}

Use Consistent Naming

variable "name_prefix" {
  type = string
}

locals {
  name = "${var.name_prefix}-${var.environment}"
}

Publishing Modules

Module Registry Format

terraform-<PROVIDER>-<NAME>
terraform-aws-vpc
terraform-google-network

Semantic Versioning

v1.0.0 - Major release
v1.1.0 - Minor release
v1.1.1 - Patch release

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenCode

29.63%
按下载量换算47

Codex

23.57%
按下载量换算37

Claude Code

20.72%
按下载量换算33

windsurf

12.39%
按下载量换算19

trae

7.7%
按下载量换算12

Antigravity

3.74%
按下载量换算6

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。

来源信息

继续浏览同类 Skills