核心用法
本 Skill 是一个纯文档型指导工具,专为 Terraform 和 OpenTofu 基础设施即代码工作流设计。它不执行任何代码,而是提供结构化的问题诊断和解决方案指引。核心使用场景包括:
1. HCL 编写与审查:资源设计、count vs for_each 选择、模块边界划分、变量类型验证
2. 故障调试:plan/apply 失败、永久差异、循环依赖、未知值错误、状态锁卡住、配置漂移
3. 重构操作:资源重命名、模块提取、导入现有资源、状态拆分/合并、跨模块迁移
4. 版本管理:Provider 固定、CLI 升级、Terraform 与 OpenTofu 迁移
5. CI/CD 设计:plan-on-PR/apply-on-merge 流水线、OIDC 认证、策略门控、漂移检测
使用时通过查询对应情境,Skill 会引用内部文档(如 debug.md、refactoring.md、ci.md 等)提供精准指导,并输出符合用户配置偏好的 HCL 代码示例和命令。
显著优点
权威性与完整性:基于 Terraform 官方最佳实践和 HashiCorp 认证架构经验,覆盖从 1.1 到 1.11+ 的版本特性矩阵,包含 OpenTofu 分叉后的差异说明。
安全零风险:纯 Markdown 文档结构,无可执行代码、无动态行为、无外部 API 调用,所有代码示例均为静态 HCL/Shell 展示,从根本上消除恶意执行风险。
决策框架清晰:提供大量结构化对照表(Quick Reference、Plan Triage、Traps、Version Floors),将复杂的基础设施决策转化为可执行的检查清单。
深度可配置:支持 8 个维度的用户偏好(工具链、命名规范、云平台、安全姿态、工作流等),生成个性化建议而非通用模板。
潜在缺点与局限性
非替代性工具:明确声明不用于选择云资源(需配合 AWS/GCP/Azure Skill)或配置实例内部(需配合 Ansible),仅为 Terraform 专用层提供指导。
文档依赖型:需要用户具备基础的 Terraform 概念理解,完全新手可能需要先学习 HCL 语法才能有效利用本 Skill。
版本同步延迟:Terraform 生态迭代快速(如 1.10 的 ephemeral values、1.11 的 write-only arguments),Skill 内容可能存在滞后于最新版本特性的情况。
Shell 命令风险:包含 17 个标记为中风险的 Shell 命令示例(如 state rm、force-unlock),虽然 Skill 仅输出文本,但用户复制执行时若未遵循"先备份"原则可能造成生产事故。
适合的目标群体
- 平台工程/SRE 团队:负责维护多环境 Terraform 配置、设计 CI/CD 流水线、处理状态异常
- 云架构师:规划基础设施即代码策略、模块版本策略、状态分离架构
- DevOps 工程师:实施 GitOps 工作流、配置 OIDC 认证、集成策略即代码(OPA/Sentinel)
- 资深开发者:在应用开发中嵌入基础设施定义,需要精准的 HCL 模式和重构指导
- Terraform 运维者:处理日常计划失败、漂移检测、Provider 升级等高频运维场景
使用风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| **误操作风险** | Skill 输出的 `terraform apply` 等命令被直接执行 | 始终遵循 Skill 强调的 Core Rule 1:`plan -out=tfplan` → 人工审查 → `apply tfplan` |
| **状态损坏风险** | `state rm`、`state mv` 等命令误用导致资源孤儿化 | 执行前强制 `state pull > backup-$(date +%s).tfstate` |
| **版本兼容性** | OpenTofu 与 Terraform 在 1.6+ 特性分叉 | 通过 `terraform_binary` 配置明确切换,关注版本地板检查 |
| **配置漂移误判** | Skill 提示"drift detected"时选择错误处理方式 | 遵循 Rule 8:显式选择 `-refresh-only` 接受现实或正常 apply 覆盖 |
| **密钥泄露** | 用户将含密钥的 `.tfvars` 提交或输出到日志 | Skill 内置 Output Gates 检查,但用户需配合加密后端和访问控制 |
总体而言,这是一个高可信度、低风险、专业深度突出的基础设施运维指导 Skill,适合作为企业 Terraform 实践的标准知识库。