关于 terraform-tasks
terraform-tasks 是面向 Terraform 用户的任务技能,可生成和维护基础设施代码,并处理升级、排错、安全修复及架构工作。它覆盖多家云平台,并包含平台感知与验证流程。
主要功能
- 01生成 Terraform 配置与模块
- 02升级 Terraform 和 Provider
- 03诊断错误并排查问题
- 04扫描并修复安全问题
- 05审查架构并生成 CI/CD 流水线
适用场景
- 01为 AWS、Azure 或 GCP 创建基础设施
- 02将旧 Terraform 配置升级到新版本
- 03排查认证失败或依赖循环
- 04迁移现有资源或拆分大型状态文件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill terraform-tasks安装后在 Claude Code 中输入/terraform-tasks确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/aws-provider-6.mdazurerm-4.mdephemeral-values.mdterraform-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 代码:
流程:
- 根据用户上下文确定提供商和版本
- 如有需要,查阅最新的提供商文档
- 生成完整配置,包括:
- 提供商版本约束
- 资源配置
- 带验证的变量
- 输出
- 安全最佳实践
- 特定平台的注意事项
示例任务:
- “创建带有专用终结点和客户管理密钥的 Azure Storage Account”
- “生成采用三层架构和 NAT 网关的 AWS VPC”
- “构建带有 Workload Identity 和节点池的 GCP GKE 集群”
2. 版本管理
处理 Terraform 和提供商版本升级:
流程:
- 检查当前版本
- 查阅变更日志和重大变更
- 提出升级路径
- 生成迁移代码
- 提供测试策略
示例任务:
- “将 AzureRM 提供商从 2.x 升级到 3.x”
- “将 Terraform 0.12 代码迁移到 1.x”
- “将所有提供商更新到最新的兼容版本”
3. 调试与故障排查
诊断并修复 Terraform 问题:
流程:
- 收集诊断信息
- 分析错误消息和日志
- 找出根本原因
- 提供特定平台的解决方案
- 建议预防措施
示例任务:
- “调试 Windows 上的状态锁超时”
- “修复 Azure DevOps pipeline 中的提供商身份验证失败”
- “解决模块结构中的循环依赖”
4. 安全扫描与修复
扫描并修复安全问题:
流程:
- 运行安全扫描器(tfsec、Checkov)
- 分析发现的问题
- 确定问题优先级
- 生成修复方案
- 解释安全影响
示例任务:
- “运行 tfsec 并修复所有 HIGH 严重性问题”
- “确保所有 S3 存储桶均已启用加密”
- “按照所有安全最佳实践实施 Azure storage account”
5. 架构审查
审查并改进 Terraform 架构:
流程:
- 分析当前结构
- 找出反模式
- 提出改进建议
- 制定重构计划
- 记录决策(ADR)
示例任务:
- “审查适用于 500 多个资源的状态管理策略”
- “设计用于实现高可用性的多区域架构”
- “将单体状态重构为分层方案”
6. CI/CD 流水线生成
创建完整的 CI/CD 流水线:
流程:
- 确定 CI/CD 平台
- 了解环境策略
- 生成流水线配置
- 加入安全扫描
- 添加审批关卡
- 实施漂移检测
示例任务:
- “创建带有多阶段部署的 Azure DevOps 流水线”
- “生成使用 OIDC 身份验证的 GitHub Actions 工作流”
- “构建使用 Terraform Cloud 后端的 GitLab CI 流水线”
7. 模块开发
创建可复用的 Terraform 模块:
流程:
- 设计模块接口
- 遵循最佳实践进行实现
- 添加变量验证
- 生成文档
- 创建示例
- 设置测试
示例任务:
- “使用 hub-spoke 模式创建 Azure 网络模块”
- “构建具备自动扩缩和 ALB 的 AWS ECS 模块”
- “开发具有自定义域名的 GCP Cloud Run 模块”
8. 迁移任务
将基础设施迁移到 Terraform:
流程:
- 清点现有资源
- 生成导入命令
- 创建匹配的 Terraform 代码
- 验证配置
- 测试导入流程
- 制定切换策略
示例任务:
- “将现有 Azure 资源导入 Terraform”
- “从 CloudFormation 迁移到 Terraform”
- “将 ARM 模板转换为 Terraform HCL”
自主行为
此技能可自主运行,几乎无需用户干预:
信息收集
- 自动检测 Terraform 和提供程序版本
- 识别平台(Windows/Linux/macOS)
- 检测 CI/CD 环境
- 检查现有配置
调研
- 使用 WebSearch 查找最新文档
- 查看提供程序的变更日志,了解重大变更
- 调研最佳实践
- 查找特定平台的解决方案
代码生成
- 生成完整、可运行的代码
- 包含所有必需文件(main.tf、variables.tf、outputs.tf 等)
- 添加全面的注释
- 遵循命名约定
- 应用安全最佳实践
验证
- 对生成的代码运行 terraform fmt
- 验证语法
- 检查安全问题
- 尽可能测试配置
文档
- 说明架构决策
- 记录用法示例
- 注明版本兼容性
- 提供故障排除提示
错误处理
遇到问题时:
- 收集上下文:收集所有相关信息
- 调研:查找错误消息及解决方案
- 考虑平台差异:考虑操作系统特定问题
- 提供多种解决方案:有可选方案时一并提供
- 预防问题:建议如何避免类似问题
特定平台注意事项
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”
技能操作:
- 检测或询问 AzureRM 提供程序版本
- 调研最新的安全要求
- 生成完整配置:
- 使用安全设置的存储账户
- 专用终结点
- 诊断设置
- 客户管理的加密密钥
- 网络规则
- 带验证的变量
- 输出
- 提供用法示例
- 在适当位置添加安全扫描器忽略注释,并附上说明
示例 2:调试计划失败
用户请求:“我的 Terraform 计划在 Windows 上因身份验证错误而失败。”
技能操作:
- 询问错误详情
- 确认这是 Azure CLI 身份验证问题
- 提供适用于 Windows 的解决方案:
- 用于检查身份验证状态的 PowerShell 命令
- 如何刷新凭据
- 环境变量配置
- 其他身份验证方法
- 说明根本原因
- 提出预防建议
示例 3:架构审查
用户请求:“审查我的 Terraform 结构,我在一个状态文件中有 1000 多个资源。”
技能操作:
- 分析当前结构
- 找出问题:
- 状态文件过大
- 操作缓慢
- 影响范围过大
- 提出分层架构:
- 拆分为基础设施层、平台层和应用层
- 使用独立的状态文件
- 使用远程状态数据源
- 生成迁移计划
- 创建 ADR 记录决策
- 提供实施步骤
与 terraform-expert Agent 集成
此技能与 terraform-expert Agent 协同工作:
- Agent 提供战略指导
- 技能执行战术任务
- Agent 验证技能输出
- 技能向 Agent 汇报
当你需要结合全面的提供商知识和平台意识,自主执行 Terraform 任务时,请使用此技能。