mcpField
O
oma-tf-infra

oma-tf-infra

github.com/gracefullight云与 DevOps49150 次安装1 天前更新
代码仓库

关于 oma-tf-infra

oma-tf-infra 是面向云基础设施的 Terraform 技能,适用于设计、编写、审查和记录 IaC。它涵盖多云资源规划,以及状态、安全、成本、连续性和策略检查。

主要功能

  1. 01编写和审查 Terraform 配置
  2. 02规划跨云服务商的资源
  3. 03评估状态、安全与成本风险
  4. 04验证计划和策略控制
  5. 05记录连续性与架构

适用场景

  1. 01配置云计算、存储和网络资源
  2. 02应用前审查 Terraform 计划
  3. 03排查状态问题或配置漂移
  4. 04记录 AI 基础设施控制措施

安装

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

$npx skills add https://github.com/gracefullight/stock-checker --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