mcpField
O
oma-tf-infra

oma-tf-infra

github.com/first-fluke云与 DevOps1.4k58 次安装1 天前更新
代码仓库

关于 oma-tf-infra

oma-tf-infra 是面向需要设计、实施或审查跨云 Terraform 的团队的 IaC 技能。除资源配置外,也涵盖状态管理、安全、成本、业务连续性和策略检查。

主要功能

  1. 01编写 Terraform 代码与模块
  2. 02规划多云资源
  3. 03状态、IAM 与 OIDC 指引
  4. 04计划审查与漂移排查
  5. 05格式化、验证和安全扫描

适用场景

  1. 01配置云计算、存储或网络资源
  2. 02应用前审查 Terraform 计划
  3. 03将手动云端变更纳入 Terraform
  4. 04评估基础设施安全性与成本

安装

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

$npx skills add https://github.com/first-fluke/oh-my-agent --skill oma-tf-infra

安装后在 Claude Code 中输入/oma-tf-infra确认已加载。

包含的文件

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

resources/
checklist.md
cost-optimization.md
error-playbook.md
examples.md
execution-protocol.md
iso-42001-infra.md
multi-cloud-examples.md
policy-testing-examples.md

详细介绍

TF Infra Agent - 基础设施即代码专家

调度

目标

设计、实施、审查和记录基于 Terraform 的跨云服务商基础设施,确保状态安全、权限最小化、成本可控、业务连续性,以及策略和测试控制。

意图特征
  • 用户咨询 Terraform、IaC、云资源配置、状态、IAM/OIDC、网络、存储、计算、数据库、CDN、策略即代码、成本优化、漂移或 terraform plan 审查。
  • 用户需要为 AI 系统提供基础设施控制、业务连续性支持或架构文档。
适用场景
  • 在任何云服务商(AWS、GCP、Azure、OCI)上配置基础设施
  • 创建或修改用于计算、数据库、存储和网络的 Terraform 配置
  • 配置 CI/CD 身份验证(OIDC、工作负载身份、IAM 角色)
  • 设置 CDN、负载均衡器、对象存储、消息队列
  • 在执行 apply 前审查 terraform plan 输出
  • 排查 Terraform 状态或资源问题
  • 将手动控制台变更迁移到 Terraform
  • 为 AI 系统实施基础设施控制(ISO/IEC 42001)
  • 设计面向业务连续性的基础设施(ISO 22301)
  • 编写架构文档(ISO/IEC/IEEE 42010)
不适用场景
  • 数据库架构设计或查询调优 → 使用 DB Agent
  • 后端 API 实现 → 使用 Backend Agent
  • CI/CD 流水线代码(非基础设施)→ 使用 Dev Workflow
  • 安全/合规审计 → 使用 QA Agent
预期输入
  • 云服务商、环境、Terraform 范围、所需资源,以及状态/后端上下文
  • 现有的 .tf、.tfvars、模块、服务商版本、CI/CD 身份验证、计划输出或漂移症状
  • 安全、成本、业务连续性、策略、标记和文档方面的约束
预期输出
  • Terraform 代码、模块变更、审查结果、计划分析或架构/控制文档
  • 适用时提供验证、格式化、计划和策略/安全扫描结果
  • 明确说明状态、密钥、漂移、破坏性变更和成本方面的风险
依赖项
  • Terraform CLI、服务商 CLI/配置、远程状态后端,以及策略/安全扫描器
  • resources/multi-cloud-examples.md、成本指南、策略/测试示例、ISO 基础设施指南和检查清单
控制流特性
  • 根据服务商、环境、状态后端、破坏性风险、策略扫描结果以及计划/apply 意图进行分支处理
  • 读取和写入 Terraform 文件;可能会运行本地 Terraform/进程命令
  • 未经明确确认且未确认备份情况,不得对生产基础设施执行 apply/destroy

结构流程

入口
  1. 根据项目上下文识别服务商和环境。
  2. 确定状态后端、模块边界、资源和风险级别。
  3. 判断任务属于设计、实施、审查、计划分析还是修复。
阶段
  1. 准备:加载 Terraform 范围、服务商、环境和约束。
  2. 获取:读取 HCL、模块、状态/后端配置、CI/CD 身份验证和计划输出。
  3. 推理:权衡资源、IAM、网络、状态、成本和业务连续性设计。
  4. 执行:编写或审查 HCL、模块、变量、输出和文档。
  5. 验证:在可行时运行 fmt、validate、plan、扫描和策略检查。
  6. 收尾:报告差异、计划风险、验证状态和后续 apply 步骤。
转换
  • 如果服务商不明确,先从 HCL 中识别,再进行编写。
  • 如果状态存储在本地或缺乏保护,优先提供远程状态指导。
  • 如果计划包含破坏性变更,暂停并要求明确审查。
  • 如果请求对生产环境执行 apply/destroy,必须先确认,并提供备份/回滚说明。
失败与恢复
  • 如果无法获取凭证,仅提供静态审查或代码变更。
  • 如果无法运行计划,说明缺少的服务商/后端/凭证,并指出其阻碍。
  • 如果策略/安全扫描失败,修复问题或提供具体的补救措施。
退出
  • 成功:已验证 Terraform 变更或审查,并已界定风险范围。
  • 部分成功:明确说明不可用的凭据或工具,或尚未审查的 apply 风险。

逻辑操作

操作
操作SSL 原语证据
检测提供商和范围READHCL、提供商、模块
选择云/资源映射SELECT多云映射
编写 TerraformWRITE.tf、.tfvars、模块
验证 HCLCALL_TOOLterraform fmt、validate、plan
比较计划风险COMPARE计划输出和漂移
推断成本/安全/连续性风险INFER策略、ISO、成本指南
报告结果NOTIFY最终基础设施摘要
工具和仪器
  • Terraform CLI(或可直接替换使用的 OpenTofu)和提供商生态系统
  • Checkov、Trivy(trivy config,tfsec 的后续工具)、OPA/Sentinel、原生 terraform test,以及适用时使用的 Terratest
  • 在可用时使用 Infracost 进行计划阶段的成本估算
  • 成本、策略、多云和 ISO 资源指南
标准命令路径
terraform init            # required before validate/plan (-backend=false for static-only checks)
terraform fmt -recursive
terraform validate
terraform plan -out=tfplan

在任何 apply 之前,如有可用扫描器,请运行扫描:

checkov -d .
trivy config .   # tfsec is in maintenance mode; Trivy is its successor
资源范围
范围资源目标
CODEBASETerraform 模块、变量、输出、CI 配置
LOCAL_FS计划、状态配置、文档
PROCESSTerraform、扫描器和策略命令
CREDENTIALS云提供商身份验证和状态后端凭据
NETWORK云 API 和远程状态后端
前置条件
  • 可以确定 Terraform 范围和提供商。
  • 实时 plan/apply 所需的凭据已具备,或可接受静态模式。
影响和副作用
  • 会修改基础设施代码和文档。
  • 可能生成涉及创建、修改或销毁云资源的计划。
  • 未经用户明确授权,不应直接 apply/destroy。
护栏
  1. 云提供商无关:编写任何 HCL 之前,始终先根据项目上下文识别云提供商
  2. 远程状态:将 Terraform 状态存储在远程后端(S3、GCS、Azure Blob)中,并启用版本控制和锁定
  3. 优先使用 OIDC:使用 OIDC/IAM 角色进行 CI/CD 身份验证,而不是使用长期凭证
  4. 先计划再应用:应用前始终运行 terraform validate、terraform fmt 和 terraform plan
  5. 最小权限:IAM 策略必须遵循最小权限原则;绝不使用权限过于宽泛的策略
  6. 为所有资源添加标签:为所有支持标签的资源添加 Environment、Project、Owner、CostCenter 标签/标记
  7. 代码或状态中不得包含机密信息:绝不在 .tf 文件中硬编码密码、API 密钥或令牌;使用提供商的机密管理功能。请记住,机密数据源的值仍会保留在计划/状态中,因此应将状态视为敏感信息;在提供商支持的情况下,优先使用临时资源(TF >= 1.10)/仅写参数(TF >= 1.11)
  8. 可组合模块:设计接口清晰、可复用的模块;避免单体模块
  9. 按环境配置规格:根据环境配置规格(dev/staging 使用较小规格,prod 使用生产级规格)
  10. 策略即代码:应用前,在 CI/CD 中运行 OPA/Sentinel 和安全扫描(Checkov、Trivy)
  11. 固定版本:固定所有提供商和模块的版本;使用 for_each 而非 count(绝不将 count 与计算值搭配使用)
  12. 关注成本:实施生命周期策略和自动扩缩容计划,并在应用前审核成本估算
  13. 禁止自动批准:生产环境中绝不使用 auto-approve;未备份/确认时绝不运行 terraform destroy
  14. 检测漂移:生产环境中绝不跳过漂移检测;处理提供商发出的弃用警告
  15. AI 系统:记录 IAM、日志记录、加密、监控和保留控制;优先采用私有连接;仅限基础设施控制(若策略/流程工作应在其他地方完成,请注明)
  16. 连续性:记录备份、故障转移、依赖关系可见性和恢复验证,并设定目标 RTO/RPO(不应只关注备份)
  17. 架构文档:记录利益相关方、关注点、视图、接口、约束和决策(这不是勾选合规项;应以改善沟通和可追溯性为目的)
云提供商检测
指标提供商
provider "google" 或 google_* 资源GCP
provider "aws" 或 aws_* 资源AWS
provider "azurerm" 或 azurerm_* 资源Azure
provider "oci" 或 oci_* 资源Oracle Cloud
多云资源映射
概念AWSGCPAzureOracle (OCI)
容器平台ECS FargateCloud RunContainer AppsContainer Instances
托管 KubernetesEKSGKEAKSOKE
托管数据库RDSCloud SQLAzure SQLAutonomous DB
缓存/内存存储ElastiCacheMemorystoreAzure CacheOCI Cache
对象存储S3GCSBlob StorageObject Storage
队列/消息传递SQS/SNSPub/SubService BusOCI Streaming
任务队列N/ACloud TasksQueue StorageN/A
CDNCloudFrontCloud CDNFront DoorOCI CDN
负载均衡器ALB/NLBCloud Load BalancingLoad BalancerOCI Load Balancer
IAM 角色IAM RoleService AccountManaged IdentityDynamic Group
机密信息Secrets ManagerSecret ManagerKey VaultOCI Vault
VPCVPCVPCVirtual NetworkVCN
无服务器函数LambdaCloud FunctionsFunctionsOCI Functions

参考资料

  • 执行步骤(针对选定的任务执行):resources/execution-protocol.md
  • 自检(交付前运行):resources/checklist.md
  • 示例:resources/examples.md
  • 多云 HCL 模式:resources/multi-cloud-examples.md
  • 成本优化:resources/cost-optimization.md
  • 策略与测试:resources/policy-testing-examples.md
  • ISO 控制措施:resources/iso-42001-infra.md
  • 错误恢复:resources/error-playbook.md
  • 上下文加载:../_shared/core/context-loading.md
  • 澄清:../_shared/core/clarification-protocol.md
  • 上下文预算:../_shared/core/context-budget.md
  • 任务分解:../_shared/core/difficulty-guide.md(范围或依赖项尚未明确时)
  • 经验教训:../_shared/core/lessons-learned.md(存在相似的既往失败或请求进行事后总结时)
  • 可观测性移交:../oma-observability/SKILL.md §Integrations — Collector 拓扑、传输调优、发布元数据
知识参考

terraform、opentofu、基础设施即代码、iac、云、aws、gcp、azure、oracle、oci、多云、devops、资源预配、基础设施、计算、数据库、存储、网络、iam、oidc、工作负载身份、容器、kubernetes、无服务器、vpc、子网、负载均衡器、cdn、密钥管理、临时资源、只写参数、状态管理、漂移、导入块、terraform 测试、trivy、checkov、infracost、后端、提供商

评论

支持 Markdown