Infrastructure Coder 是一个面向基础设施即代码(Infrastructure-as-Code,IaC)的 AI 技能,用于生成、审查和分析 IaC 配置。其范围严格限定为 IaC 的生成与分析,不适用于 CI/CD 流水线(应使用 devops-engineer 技能)、应用代码、云控制台操作或实际成本计算。
用途
该技能帮助用户编写和检查三类核心 IaC 资产:Terraform/OpenTofu 模块、Kubernetes 清单与 Helm Chart、Dockerfile。它同时提供审查、成本相对比较和安全扫描能力,适合在基础设施变更前进行质量与安全把关。
主要能力
技能通过模式(Mode)组织功能:
- terraform <requirements>:生成生产可用的 Terraform/OpenTofu 模块,包含 main.tf、variables.tf、outputs.tf、versions.tf 等结构。生成规则要求固定 provider 版本(~> 约束)、对命名资源使用 for_each 而非 count、为所有资源打上 Name、Environment、ManagedBy = "terraform" 标签、使用 data source 引用已有基础设施而非硬编码 ARN/ID、按环境分离 state。
- kubernetes <requirements> / k8s <requirements>:生成 Kubernetes 清单或 Helm Chart。清单要求每个容器设置资源 limits 和 requests、配置 liveness/readiness/startup 探针、设置安全上下文(非 root、只读根文件系统、丢弃 capabilities)、为高可用工作负载配置 PodDisruptionBudget、为 Pod 间通信配置 NetworkPolicy。Helm Chart 需参数化环境相关值并使用 values.yaml 默认值。
- docker <requirements>:优化 Dockerfile 的体积、构建速度与安全性,包括多阶段构建、按变更频率排列层、使用具体基础镜像标签(禁止 latest)、运行时使用 distroless 或 Alpine、非 root USER 指令、COPY 具体文件而非 COPY . .、合并 RUN 命令、使用 .dockerignore。
- review <file-or-path>:审计 IaC 文件的正确性、最佳实践与可靠性。分析分三轮:正确性(语法、引用有效性、API 版本兼容)、最佳实践(模式与反模式)、可靠性(失败模式、爆炸半径、恢复路径)。发现按 Critical / Warning / Info 分组,每条包含文件位置、问题描述和修复建议。
- cost <config-or-path>:在资源配置之间做成本相对比较,而非绝对定价。比较维度包括实例族(计算优化/内存优化/通用)、存储层级(标准/低频/归档)、网络(跨区域/区域内/同可用区)、托管与自托管权衡。输出相对比较表(如“约为……的 2 倍成本”“与……相当”),绝不给出美元金额。
- security <config-or-path>:扫描 IaC 安全配置错误,检查网络(开放安全组、公共子网、缺失 NACL)、加密(未加密存储、缺失 TLS、明文密钥)、访问(过度宽松的 IAM、缺失 MFA、通配符策略)、容器(特权模式、root 用户、host 网络、latest 标签)、密钥(硬编码凭据、配置中的 API key、缺失 vault 集成)。发现按 Critical / High / Medium / Low 分级,并尽可能引用 CIS 或云厂商基准。
使用方式
技能通过 $ARGUMENTS 进行调度,用户以模式加需求或路径的方式调用。空参数时显示模式菜单与示例。在 Terraform、Kubernetes、Docker 模式以及 Review 模式中,会先运行对应的分析脚本(terraform-module-scanner.py、k8s-manifest-validator.py、dockerfile-analyzer.py)来了解现状或收集问题。审查、成本或安全扫描完成后,会渲染 IaC 概览仪表盘:将资源清单与发现以 JSON 注入 templates/dashboard.html,复制到临时文件后注入数据并在浏览器中打开。
技能附带参考文件,按需一次加载一个,不预加载全部:terraform-patterns.md、kubernetes-patterns.md、dockerfile-guide.md、cloud-equivalents.md、security-hardening.md、cost-comparison.md。
适用场景
适合需要快速生成或审查 Terraform 模块、K8s 清单、Helm Chart、Dockerfile 的工程场景,以及在变更前进行安全扫描和成本相对评估。
限制
技能明确拒绝 CI/CD 流水线请求(转交 devops-engineer 技能)、应用代码请求,以及绝对成本估算请求(改为提供相对比较)。它不处理云控制台操作。所有生成内容禁止硬编码密钥,必须使用变量、vault 引用或密钥管理器;禁止使用 latest 标签;K8s 清单必须包含资源限制、健康检查和安全上下文;Terraform 命名资源必须使用 for_each;IAM 策略必须遵循最小权限原则。