关于 oma-tf-infra
oma-tf-infra 是面向云基础设施的 Terraform 技能,适用于设计、编写、审查和记录 IaC。它涵盖多云资源规划,以及状态、安全、成本、连续性和策略检查。
主要功能
- 01编写和审查 Terraform 配置
- 02规划跨云服务商的资源
- 03评估状态、安全与成本风险
- 04验证计划和策略控制
- 05记录连续性与架构
适用场景
- 01配置云计算、存储和网络资源
- 02应用前审查 Terraform 计划
- 03排查状态问题或配置漂移
- 04记录 AI 基础设施控制措施
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gracefullight/ stock-checker --skill oma-tf-infra安装后在 Claude Code 中输入/oma-tf-infra确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
resources/checklist.mdcost-optimization.mderror-playbook.mdexamples.mdexecution-protocol.mdiso-42001-infra.mdmulti-cloud-examples.mdpolicy-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
结构流程
入口
- 根据项目上下文识别服务商和环境。
- 确定状态后端、模块边界、资源和风险级别。
- 判断任务属于设计、实施、审查、计划分析还是修复。
阶段
- 准备:加载 Terraform 范围、服务商、环境和约束。
- 获取:读取 HCL、模块、状态/后端配置、CI/CD 身份验证和计划输出。
- 推理:权衡资源、IAM、网络、状态、成本和业务连续性设计。
- 执行:编写或审查 HCL、模块、变量、输出和文档。
- 验证:在可行时运行 fmt、validate、plan、扫描和策略检查。
- 收尾:报告差异、计划风险、验证状态和后续 apply 步骤。
转换
- 如果服务商不明确,先从 HCL 中识别,再进行编写。
- 如果状态存储在本地或缺乏保护,优先提供远程状态指导。
- 如果计划包含破坏性变更,暂停并要求明确审查。
- 如果请求对生产环境执行 apply/destroy,必须先确认,并提供备份/回滚说明。
失败与恢复
- 如果无法获取凭证,仅提供静态审查或代码变更。
- 如果无法运行计划,说明缺少的服务商/后端/凭证,并指出其阻碍。
- 如果策略/安全扫描失败,修复问题或提供具体的补救措施。
退出
- 成功:已验证 Terraform 变更或审查,并已界定风险范围。
- 部分成功:明确说明不可用的凭据或工具,或尚未审查的 apply 风险。
逻辑操作
操作
| 操作 | SSL 原语 | 证据 |
|---|---|---|
| 检测提供商和范围 | READ | HCL、提供商、模块 |
| 选择云/资源映射 | SELECT | 多云映射 |
| 编写 Terraform | WRITE | .tf、.tfvars、模块 |
| 验证 HCL | CALL_TOOL | terraform 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
资源范围
| 范围 | 资源目标 |
|---|---|
CODEBASE | Terraform 模块、变量、输出、CI 配置 |
LOCAL_FS | 计划、状态配置、文档 |
PROCESS | Terraform、扫描器和策略命令 |
CREDENTIALS | 云提供商身份验证和状态后端凭据 |
NETWORK | 云 API 和远程状态后端 |
前置条件
- 可以确定 Terraform 范围和提供商。
- 实时 plan/apply 所需的凭据已具备,或可接受静态模式。
影响和副作用
- 会修改基础设施代码和文档。
- 可能生成涉及创建、修改或销毁云资源的计划。
- 未经用户明确授权,不应直接 apply/destroy。
护栏
- 云提供商无关:编写任何 HCL 之前,始终先根据项目上下文识别云提供商
- 远程状态:将 Terraform 状态存储在远程后端(S3、GCS、Azure Blob)中,并启用版本控制和锁定
- 优先使用 OIDC:使用 OIDC/IAM 角色进行 CI/CD 身份验证,而不是使用长期凭证
- 先计划再应用:应用前始终运行
terraform validate、terraform fmt和terraform plan - 最小权限:IAM 策略必须遵循最小权限原则;绝不使用权限过于宽泛的策略
- 为所有资源添加标签:为所有支持标签的资源添加 Environment、Project、Owner、CostCenter 标签/标记
- 代码或状态中不得包含机密信息:绝不在 .tf 文件中硬编码密码、API 密钥或令牌;使用提供商的机密管理功能。请记住,机密数据源的值仍会保留在计划/状态中,因此应将状态视为敏感信息;在提供商支持的情况下,优先使用临时资源(TF >= 1.10)/仅写参数(TF >= 1.11)
- 可组合模块:设计接口清晰、可复用的模块;避免单体模块
- 按环境配置规格:根据环境配置规格(dev/staging 使用较小规格,prod 使用生产级规格)
- 策略即代码:应用前,在 CI/CD 中运行 OPA/Sentinel 和安全扫描(Checkov、Trivy)
- 固定版本:固定所有提供商和模块的版本;使用
for_each而非count(绝不将count与计算值搭配使用) - 关注成本:实施生命周期策略和自动扩缩容计划,并在应用前审核成本估算
- 禁止自动批准:生产环境中绝不使用
auto-approve;未备份/确认时绝不运行terraform destroy - 检测漂移:生产环境中绝不跳过漂移检测;处理提供商发出的弃用警告
- AI 系统:记录 IAM、日志记录、加密、监控和保留控制;优先采用私有连接;仅限基础设施控制(若策略/流程工作应在其他地方完成,请注明)
- 连续性:记录备份、故障转移、依赖关系可见性和恢复验证,并设定目标 RTO/RPO(不应只关注备份)
- 架构文档:记录利益相关方、关注点、视图、接口、约束和决策(这不是勾选合规项;应以改善沟通和可追溯性为目的)
云提供商检测
| 指标 | 提供商 |
|---|---|
provider "google" 或 google_* 资源 | GCP |
provider "aws" 或 aws_* 资源 | AWS |
provider "azurerm" 或 azurerm_* 资源 | Azure |
provider "oci" 或 oci_* 资源 | Oracle Cloud |
多云资源映射
| 概念 | AWS | GCP | Azure | Oracle (OCI) |
|---|---|---|---|---|
| 容器平台 | ECS Fargate | Cloud Run | Container Apps | Container Instances |
| 托管 Kubernetes | EKS | GKE | AKS | OKE |
| 托管数据库 | RDS | Cloud SQL | Azure SQL | Autonomous DB |
| 缓存/内存存储 | ElastiCache | Memorystore | Azure Cache | OCI Cache |
| 对象存储 | S3 | GCS | Blob Storage | Object Storage |
| 队列/消息传递 | SQS/SNS | Pub/Sub | Service Bus | OCI Streaming |
| 任务队列 | N/A | Cloud Tasks | Queue Storage | N/A |
| CDN | CloudFront | Cloud CDN | Front Door | OCI CDN |
| 负载均衡器 | ALB/NLB | Cloud Load Balancing | Load Balancer | OCI Load Balancer |
| IAM 角色 | IAM Role | Service Account | Managed Identity | Dynamic Group |
| 机密信息 | Secrets Manager | Secret Manager | Key Vault | OCI Vault |
| VPC | VPC | VPC | Virtual Network | VCN |
| 无服务器函数 | Lambda | Cloud Functions | Functions | OCI 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