Terraform基础设施技能Skill terraform-infra

这个技能用于自动化 Terraform 基础设施即代码操作,提供安全控制和最佳实践,适用于 DevOps 工作流,帮助团队高效管理云基础设施。关键词包括 Terraform, 基础设施即代码, DevOps, 自动化, 安全控制, 云计算管理。

DevOps 0 次安装 0 次浏览 更新于 3/10/2026

名称: terraform-基础设施 描述: 带有安全控制的 Terraform 基础设施操作 版本: 1.0.0 模型: sonnet 调用方式: 两者 用户可调用: 是 工具: [Bash, Read, Glob] 最佳实践:

  • 在应用前始终运行计划
  • 仔细审查计划输出
  • 永远不要强制推送到生产环境 错误处理: 优雅 流式传输: 支持 已验证: 假 最后验证时间: 2026-02-19T05:29:09.098Z

Terraform 基础设施技能

安装

技能调用 Terraform CLI。安装:

  • macOS: brew tap hashicorp/tap && brew install hashicorp/tap/terraform
  • Windows: choco install terraform 或从 HashiCorp 下载
  • Linux (apt): 添加 HashiCorp 仓库,然后 sudo apt update && sudo apt install terraform(见 HashiCorp 安装

验证: terraform --version

速查表与最佳实践

工作流: terraform initterraform fmtterraform validateterraform plan -out=tfplan → 审查 → terraform apply tfplan。使用 terraform show tfplan 检查。

技巧: 始终在 apply 前运行 plan;从不盲目 apply。使用远程状态(如 S3 + 锁)进行团队工作。在 CI 中仅使用已审查的计划时优先使用 -auto-approve。使用 terraform state listterraform state show <resource> 调试。在管道中使用服务账户/工作负载身份;避免静态密钥。

认证与培训

HashiCorp Terraform Associate (004): IaC 概念、Terraform 基础、状态、模块、Terraform Cloud。学习路径技能数据: init → fmt → validate → plan -out → apply;远程状态;无盲目应用。

钩子与工作流

建议钩子: 预应用:运行 terraform plan -out=tfplan 并在审查后门控。CI:仅在计划批准后应用。与 devops(主要)使用。

工作流:devops(主要)使用。流程:init → plan → review → apply;使用状态命令调试。见 ci-cd-implementation-rule 用于管道集成。

概述

提供相对于原始 Terraform MCP 服务器 90%+ 的上下文节省。包括基础设施操作的关键安全控制。

要求

  • Terraform CLI (v1.0+)
  • 云提供商凭据配置
  • 工作目录包含 .tf 文件

工具(渐进式披露)

规划与验证

工具 描述 确认
plan 生成 terraform 计划
validate 验证配置
fmt 格式化 terraform 文件

状态操作

工具 描述 确认
show 显示当前状态
list 列出状态资源
state-mv 移动状态中的资源

工作区操作

工具 描述 确认
workspace-list 列出工作区
workspace-select 选择工作区
workspace-new 创建工作区

执行(⚠️ 危险)

工具 描述 确认
apply 应用更改 必需

被阻止的操作

工具 状态
destroy 被阻止
state-rm 被阻止

快速参考

# 初始化
terraform init

# 规划更改
terraform plan -out=tfplan

# 验证
terraform validate

# 应用(自动化需要 -auto-approve)
terraform apply tfplan

配置

  • 工作目录: 必须包含 terraform 文件
  • TFVAR*: 通过环境变量值
  • TF_WORKSPACE: 活动工作区

安全控制

⚠️ terraform apply 始终需要确认 ⚠️ terraform destroy 默认被阻止 ⚠️ 状态修改需要确认 ⚠️ 应用前审查计划输出

代理集成

  • devops(主要): 基础设施管理
  • architect(次要): 基础设施设计
  • cloud-integrator(次要): 云供应

故障排除

问题 解决方案
初始化失败 检查提供商凭据
状态锁定 检查其他操作
计划失败 仔细审查错误输出

内存协议(强制)

开始前: 读取 .claude/context/memory/learnings.md

完成后:

  • 新模式 -> .claude/context/memory/learnings.md
  • 发现的问题 -> .claude/context/memory/issues.md
  • 做出的决定 -> .claude/context/memory/decisions.md

假设中断:如果不在内存中,就没有发生。