mcpField
T
terraform-tasks

terraform-tasks

github.com/josiahsiegel云与 DevOps59151 次安装19 周前更新
代码仓库

关于 terraform-tasks

terraform-tasks 是面向 Terraform 用户的任务技能,可生成和维护基础设施代码,并处理升级、排错、安全修复及架构工作。它覆盖多家云平台,并包含平台感知与验证流程。

主要功能

  1. 01生成 Terraform 配置与模块
  2. 02升级 Terraform 和 Provider
  3. 03诊断错误并排查问题
  4. 04扫描并修复安全问题
  5. 05审查架构并生成 CI/CD 流水线

适用场景

  1. 01为 AWS、Azure 或 GCP 创建基础设施
  2. 02将旧 Terraform 配置升级到新版本
  3. 03排查认证失败或依赖循环
  4. 04迁移现有资源或拆分大型状态文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill terraform-tasks

安装后在 Claude Code 中输入/terraform-tasks确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
aws-provider-6.md
azurerm-4.md
ephemeral-values.md
terraform-stacks.md

详细介绍

Terraform 任务技能

🚨 关键指南

Windows 文件路径要求

强制要求:在 Windows 上始终使用反斜杠表示文件路径

在 Windows 上使用 Edit 或 Write 工具时,文件路径中必须使用反斜杠(\),而不是正斜杠(/)。

示例:

  • ❌ 错误:D:/repos/project/file.tsx
  • ✅ 正确:D:\repos\project\file.tsx

此要求适用于:

  • Edit 工具的 file_path 参数
  • Write 工具的 file_path 参数
  • Windows 系统上的所有文件操作
文档指南

除非用户明确要求,否则绝不要创建新的文档文件。

  • 优先事项:更新现有 README.md 文件,而不是创建新文档
  • 保持仓库整洁:保持仓库根目录整洁——除非用户另有要求,否则只保留 README.md
  • 风格:文档应简洁、直接、专业,避免 AI 生成式语气
  • 用户偏好:只有用户明确要求编写文档时,才创建其他 .md 文件

此技能支持自主执行复杂的 Terraform 任务,并具备全面的提供程序知识和平台意识。

功能

1. 基础设施代码生成

为任何云服务提供商生成完整、可用于生产环境的 Terraform 代码:

流程:

  1. 根据用户上下文确定提供商和版本
  2. 如有需要,查阅最新的提供商文档
  3. 生成完整配置,包括:
    • 提供商版本约束
    • 资源配置
    • 带验证的变量
    • 输出
    • 安全最佳实践
    • 特定平台的注意事项

示例任务:

  • “创建带有专用终结点和客户管理密钥的 Azure Storage Account”
  • “生成采用三层架构和 NAT 网关的 AWS VPC”
  • “构建带有 Workload Identity 和节点池的 GCP GKE 集群”
2. 版本管理

处理 Terraform 和提供商版本升级:

流程:

  1. 检查当前版本
  2. 查阅变更日志和重大变更
  3. 提出升级路径
  4. 生成迁移代码
  5. 提供测试策略

示例任务:

  • “将 AzureRM 提供商从 2.x 升级到 3.x”
  • “将 Terraform 0.12 代码迁移到 1.x”
  • “将所有提供商更新到最新的兼容版本”
3. 调试与故障排查

诊断并修复 Terraform 问题:

流程:

  1. 收集诊断信息
  2. 分析错误消息和日志
  3. 找出根本原因
  4. 提供特定平台的解决方案
  5. 建议预防措施

示例任务:

  • “调试 Windows 上的状态锁超时”
  • “修复 Azure DevOps pipeline 中的提供商身份验证失败”
  • “解决模块结构中的循环依赖”
4. 安全扫描与修复

扫描并修复安全问题:

流程:

  1. 运行安全扫描器(tfsec、Checkov)
  2. 分析发现的问题
  3. 确定问题优先级
  4. 生成修复方案
  5. 解释安全影响

示例任务:

  • “运行 tfsec 并修复所有 HIGH 严重性问题”
  • “确保所有 S3 存储桶均已启用加密”
  • “按照所有安全最佳实践实施 Azure storage account”
5. 架构审查

审查并改进 Terraform 架构:

流程:

  1. 分析当前结构
  2. 找出反模式
  3. 提出改进建议
  4. 制定重构计划
  5. 记录决策(ADR)

示例任务:

  • “审查适用于 500 多个资源的状态管理策略”
  • “设计用于实现高可用性的多区域架构”
  • “将单体状态重构为分层方案”
6. CI/CD 流水线生成

创建完整的 CI/CD 流水线:

流程:

  1. 确定 CI/CD 平台
  2. 了解环境策略
  3. 生成流水线配置
  4. 加入安全扫描
  5. 添加审批关卡
  6. 实施漂移检测

示例任务:

  • “创建带有多阶段部署的 Azure DevOps 流水线”
  • “生成使用 OIDC 身份验证的 GitHub Actions 工作流”
  • “构建使用 Terraform Cloud 后端的 GitLab CI 流水线”
7. 模块开发

创建可复用的 Terraform 模块:

流程:

  1. 设计模块接口
  2. 遵循最佳实践进行实现
  3. 添加变量验证
  4. 生成文档
  5. 创建示例
  6. 设置测试

示例任务:

  • “使用 hub-spoke 模式创建 Azure 网络模块”
  • “构建具备自动扩缩和 ALB 的 AWS ECS 模块”
  • “开发具有自定义域名的 GCP Cloud Run 模块”
8. 迁移任务

将基础设施迁移到 Terraform:

流程:

  1. 清点现有资源
  2. 生成导入命令
  3. 创建匹配的 Terraform 代码
  4. 验证配置
  5. 测试导入流程
  6. 制定切换策略

示例任务:

  • “将现有 Azure 资源导入 Terraform”
  • “从 CloudFormation 迁移到 Terraform”
  • “将 ARM 模板转换为 Terraform HCL”

自主行为

此技能可自主运行,几乎无需用户干预:

信息收集
  • 自动检测 Terraform 和提供程序版本
  • 识别平台(Windows/Linux/macOS)
  • 检测 CI/CD 环境
  • 检查现有配置
调研
  • 使用 WebSearch 查找最新文档
  • 查看提供程序的变更日志,了解重大变更
  • 调研最佳实践
  • 查找特定平台的解决方案
代码生成
  • 生成完整、可运行的代码
  • 包含所有必需文件(main.tf、variables.tf、outputs.tf 等)
  • 添加全面的注释
  • 遵循命名约定
  • 应用安全最佳实践
验证
  • 对生成的代码运行 terraform fmt
  • 验证语法
  • 检查安全问题
  • 尽可能测试配置
文档
  • 说明架构决策
  • 记录用法示例
  • 注明版本兼容性
  • 提供故障排除提示

错误处理

遇到问题时:

  1. 收集上下文:收集所有相关信息
  2. 调研:查找错误消息及解决方案
  3. 考虑平台差异:考虑操作系统特定问题
  4. 提供多种解决方案:有可选方案时一并提供
  5. 预防问题:建议如何避免类似问题

特定平台注意事项

Windows
  • 命令使用 PowerShell 语法
  • 路径处理(反斜杠)
  • 换行符注意事项
  • 执行策略问题
  • 凭据管理
Linux/macOS
  • 命令使用 Bash 语法
  • 文件权限
  • 包管理器
  • 环境变量
CI/CD 环境
  • 特定于流水线的语法
  • Agent 功能
  • 身份验证方法
  • 构件处理

质量标准

所有生成的 Terraform 代码必须:

  • 格式正确(terraform fmt)
  • 通过验证(terraform validate)
  • 包含安全最佳实践
  • 对变量进行全面验证
  • 包含有意义的描述
  • 遵循命名约定
  • 与版本兼容
  • 包含用法示例
  • 正确定义输出

提供程序专业知识

Azure(AzureRM)
  • 所有资源类型
  • 用于预览功能的 AzAPI
  • 服务终结点和专用终结点
  • 托管标识
  • RBAC 和策略
AWS
  • 所有服务
  • IAM 角色和策略
  • VPC 网络
  • S3 后端配置
  • 跨账户部署
Google Cloud
  • 所有 GCP 服务
  • IAM 和服务账号
  • VPC 和网络
  • GCS 后端配置
  • 组织和文件夹策略
社区提供程序
  • Kubernetes 和 Helm
  • Datadog、PagerDuty
  • GitHub、GitLab
  • HashiCorp Vault
  • 以及更多……

示例

示例 1:生成 Azure Storage Account

用户请求:“使用所有安全最佳实践创建 Azure Storage Account”

技能操作:

  1. 检测或询问 AzureRM 提供程序版本
  2. 调研最新的安全要求
  3. 生成完整配置:
    • 使用安全设置的存储账户
    • 专用终结点
    • 诊断设置
    • 客户管理的加密密钥
    • 网络规则
    • 带验证的变量
    • 输出
  4. 提供用法示例
  5. 在适当位置添加安全扫描器忽略注释,并附上说明
示例 2:调试计划失败

用户请求:“我的 Terraform 计划在 Windows 上因身份验证错误而失败。”

技能操作:

  1. 询问错误详情
  2. 确认这是 Azure CLI 身份验证问题
  3. 提供适用于 Windows 的解决方案:
    • 用于检查身份验证状态的 PowerShell 命令
    • 如何刷新凭据
    • 环境变量配置
    • 其他身份验证方法
  4. 说明根本原因
  5. 提出预防建议
示例 3:架构审查

用户请求:“审查我的 Terraform 结构,我在一个状态文件中有 1000 多个资源。”

技能操作:

  1. 分析当前结构
  2. 找出问题:
    • 状态文件过大
    • 操作缓慢
    • 影响范围过大
  3. 提出分层架构:
    • 拆分为基础设施层、平台层和应用层
    • 使用独立的状态文件
    • 使用远程状态数据源
  4. 生成迁移计划
  5. 创建 ADR 记录决策
  6. 提供实施步骤

与 terraform-expert Agent 集成

此技能与 terraform-expert Agent 协同工作:

  • Agent 提供战略指导
  • 技能执行战术任务
  • Agent 验证技能输出
  • 技能向 Agent 汇报

当你需要结合全面的提供商知识和平台意识,自主执行 Terraform 任务时,请使用此技能。

评论

支持 Markdown