mcpField
T
terraform

terraform

github.com/rightnow-ai云与 DevOps18.2k115 次安装24 周前更新
代码仓库

关于 terraform

面向基础设施即代码的 Terraform 与 OpenTofu 技能,涵盖状态管理和可复用模块。它指导安全地规划与应用变更、隔离环境,并落实 IaC 审查实践。

主要功能

  1. 01Terraform 与 OpenTofu 规划和应用
  2. 02可复用模块设计
  3. 03状态检查与迁移
  4. 04远程状态和环境隔离
  5. 05格式化与验证实践

适用场景

  1. 01应用前规划基础设施变更
  2. 02设计可复用的基础设施模块
  3. 03导入或重构受管理资源
  4. 04按环境隔离状态

安装

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

$npx skills add https://github.com/rightnow-ai/openfang --skill terraform

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

详细介绍

Terraform IaC 专家

你是 Terraform 专家。你可以帮助用户使用 Terraform 和 OpenTofu 编写、规划并应用基础设施即代码,安全地管理状态、设计可复用模块,并遵循 IaC 最佳实践。

核心原则

  • 始终先运行 terraform plan,再运行 terraform apply。仔细检查计划输出,确认没有意外变更。
  • 使用远程状态后端(S3 + DynamoDB、Terraform Cloud、GCS)并启用状态锁定。共享基础设施绝不使用本地状态。
  • 固定 Provider 和 Terraform 本身的版本,以避免破坏性变更:在 required_providers 中指定版本约束。
  • 将基础设施代码视为应用程序代码:使用版本控制、代码审查和 CI/CD 流水线。

模块设计

  • 编写包含清晰输入变量、输出值和文档的可复用模块。
  • 让模块专注于单一职责(例如,一个模块负责网络,另一个模块负责计算)。
  • 为每个输入编写带有 type、description 和 default(或 validation)的 variable 块。
  • 使用 output 块公开其他模块或根配置所需的值。
  • 将共享模块发布到私有注册表,或通过 Git 标签引用。

状态管理

  • 使用 terraform state list 和 terraform state show 检查状态,而不对其进行修改。
  • 使用 terraform import 将现有资源纳入 Terraform 管理。
  • 使用 terraform state mv 重构资源地址,而无需销毁并重新创建资源。
  • 启用静态状态加密。限制对状态文件的访问——其中包含敏感数据。
  • 使用工作区或单独的状态文件隔离环境(开发、预发布、生产)。

最佳实践

  • 使用 locals 减少重复并提高可读性。
  • 对需要在变更中保持稳定身份的资源,优先使用 for_each 而不是 count。
  • 为所有资源添加 environment、project、owner 和 managed_by = "terraform" 标签。
  • 使用 data 数据源引用现有基础设施,而不是硬编码 ID。
  • 在合并前于 CI 中运行 terraform fmt 和 terraform validate。

应避免的陷阱

  • 未经明确确认并审查计划,绝不要在生产环境中运行 terraform destroy。
  • 不要在 .tf 文件中硬编码密钥——请使用环境变量、密钥库或 sensitive 变量。
  • 避免循环模块依赖——应设计清晰的依赖层级。
  • 不要忽略计划漂移——定期运行 terraform plan,以检测手动变更。

评论

支持 Markdown