写 Terraform 最费时间的从来不是想清楚要什么,而是把想清楚的东西翻译成正确的 HCL。一个 VPC 加三层子网、一个带健康检查的负载均衡、一组最小权限的 IAM 策略——业务逻辑几分钟就能说明白,可真要落到代码上,得翻半小时 Registry 文档去确认某个参数到底叫 cidr_block 还是 ipv4_cidr_block、某个资源块下面有没有嵌套的 dynamic 用法。
这正是 AI 最擅长补位的地方。这两年围绕 Terraform 的 AI 生成工具已经从"玩具级补全"进化到"能生成可 plan 通过的模块",而且相当一部分是开源免费的。这篇文章挑了 6 款真正能免费用起来的方案,逐个讲清楚它们的能力边界、免费额度和实测手感,最后附一套可直接复制的提示词模板、一条完整的生成后校验流水线,以及六个新手最容易踩的坑。
先说清楚:AI 生成 Terraform 到底靠不靠谱
结论是——生成骨架非常靠谱,生成细节必须校验。理解这几条边界,你才知道该把 AI 用在哪一段。
- 声明式语法对 AI 友好:HCL 是描述"期望状态"的声明式语言,没有循环嵌套、没有复杂控制流,结构高度模式化。相比让 AI 写业务代码,写 HCL 的出错空间小得多。
- Provider 参数是最大变数:AWS Provider 有上千种资源,阿里云、腾讯云、Azure 各有一套命名。模型训练数据里的版本可能落后半年到两年,最常见的错误就是用了已废弃的参数名,或者把 v4 的写法用在 v5 Provider 上。
- plan 是天然的安全网:这是 Terraform 相比其他配置文件的最大优势——
terraform plan会在真正动手前列出所有变更,AI 写错了大概率在 plan 阶段就暴露,不会像 Shell 脚本那样跑一半才发现删错了东西。 - 状态文件不能交给 AI:远程 state 后端、state 加锁、workspace 划分这些涉及团队协作的决策,属于架构层面的选择,AI 给的默认方案往往是"本地 state",直接用会埋大雷。
所以合理的工作流是:AI 出骨架 → 人工校对 Provider 版本 → 静态检查 → plan 复核 → apply。下面这 6 款工具,就是围绕前两步来选的。
一、AIaC:开源 CLI,一句话直出基础设施代码
一句话定位:Firefly 团队开源的命令行工具,专门做"自然语言 → IaC",Terraform 是它的一等公民。
AIaC 的设计哲学很纯粹:不做编辑器插件,不做网页应用,就做一个能塞进任何终端的二进制。你在命令行里描述需求,它把生成结果直接打到 stdout 或写进文件,天然适合塞进脚手架脚本里批量用。
核心能力
- 支持多种目标产物:Terraform、Dockerfile、Kubernetes 清单、GitHub Actions、Ansible playbook 都能生成,一个工具覆盖大半个交付链路。
- 交互式修订:生成后可以直接在终端里说"把实例类型改成 4 核 8G""加上标签规范",它会基于上一轮结果增量改写,而不是从头重来。
- 可接自有模型端点:默认走 OpenAI 兼容接口,把 base URL 指向本地 Ollama 或国内模型服务就能零成本跑,这也是它能"完全免费"的关键。
- 输出纯净:默认只吐代码块,不带寒暄和解释,方便直接管道重定向到
.tf文件。
免费额度:工具本身完全开源免费,成本只在你接的模型。接本地 Ollama 跑开源模型就是纯零成本;接国内大模型的免费额度也够个人每天几十次调用。
实测手感:用"创建一个 AWS VPC,两个可用区各一个公有子网和私有子网,公有子网走 IGW,私有子网走 NAT 网关"这种描述,出来的结构基本正确,路由表关联和 NAT 的依赖顺序都处理对了。缺点是不会主动加 required_providers 版本约束,需要自己补一段。
适合谁:习惯命令行、想把生成动作脚本化的运维和 DevOps 工程师。如果你还在手写 Dockerfile,可以顺手看看 AI Dockerfile生成工具免费推荐:6款一句话写出生产级容器配置的神器横向对比与实操指南,AIaC 同样能覆盖那个场景。
二、terraform-ai:生成即执行的交互式命令行
一句话定位:把 AI 和 Terraform CLI 缝在一起,说完需求直接问你"要不要 apply"。
terraform-ai 走的是另一条路——它不满足于只生成代码,而是把整个"生成 → 预览 → 执行"的闭环搬进一条命令里。你输入一句 terraform-ai "create a micro ec2 with ubuntu 22.04 named test-box",它会生成 HCL、展示出来、然后交互式询问是否执行 apply。
核心能力
- 上下文感知:会读取当前目录下已有的
.tf文件,把已定义的 provider、variable、data source 一并塞进提示词,所以生成的新资源能自动复用你已有的变量,而不是凭空造一套。 - 内置提示词工程:预置了针对 HCL 的系统提示,明确要求"只输出有效 HCL、不要 Markdown 包裹、不要解释",输出干净度比裸调模型高一截。
- 交互确认:apply 前必须人工敲确认,避免 AI 一句话删库。
- 可指定 Provider 版本:命令行参数里能声明目标 Provider 版本,一定程度缓解模型知识过期的问题。
免费额度:工具开源免费,需要自备模型 API Key。用国内模型的免费额度或本地模型均可。
实测手感:上下文感知这个功能确实好用——已有一个 var.environment 变量时,它生成的新资源会自动带上 tags = { Environment = var.environment },不用再手动统一。但对复杂多资源编排(比如一次性生成 EKS 集群 + 节点组 + IRSA 角色)成功率会掉,建议拆成三次生成。
适合谁:做 PoC、临时开测试环境的开发者,尤其是需要频繁"起一台机器试试"的场景。
三、Terraform MCP Server + AI 编辑器:让模型现查官方文档
一句话定位:目前准确率最高的方案,本质是给 AI 装了一个能实时查 Terraform Registry 的外挂。
前面两款工具的天花板都卡在同一个地方:模型靠记忆写参数,记忆会过期。MCP(Model Context Protocol)方案直接绕过了这个问题——HashiCorp 官方提供了 Terraform MCP Server,把它接进 Cursor、Claude Code、Cline 这类支持 MCP 的 AI 编辑器后,模型在生成代码前会先去 Registry 查这个 Provider 当前版本到底有哪些参数、每个参数什么类型。
核心能力
- 实时检索 Provider 文档:不再靠猜,参数名和类型直接来自官方 Registry。
- 模块检索:能搜索 Registry 上的公开模块,遇到常见需求会优先推荐成熟模块而不是从零手写,这往往比自己写的质量更高。
- 在编辑器内闭环:生成、修改、跑
terraform validate都在同一个界面完成,AI 能看到报错信息并自我修正。 - 可与其他 MCP 组合:同时挂上文件系统、Git 等 MCP,就能让 AI 顺手把生成的代码提交成规范 commit。
免费额度:MCP Server 本身开源免费。配套编辑器里,Cline、Continue 这类插件可以接免费模型;Cursor 有免费档但额度有限。整体可以做到零成本,只是要花十几分钟配环境。
实测手感:这是六款里参数准确率最高的。让它写一个"阿里云 ACK 托管版集群 + 一个抢占式实例节点池",生成的资源类型和参数几乎不用改,因为它真的去查了文档。缺点是慢——每次生成前的检索会多花十几秒。
适合谁:正式项目、要交付给团队的代码。配置一次长期受益,强烈推荐作为主力方案。配好 MCP 之后,顺便让它帮你生成流水线也很顺手,参考 AI CI/CD流水线配置生成工具免费推荐:6款一句话写出GitHub Actions与Jenkinsfile的神器横向对比与实操指南。
四、Pulumi AI:先生成通用 IaC,再转成 Terraform
一句话定位:用真正的编程语言描述基础设施,AI 生成后可导出为 Terraform 兼容形态。
Pulumi 的路线和 Terraform 不同——它让你用 TypeScript、Python、Go 写基础设施。Pulumi AI 提供网页版对话界面,输入自然语言直接生成对应语言的 IaC 代码。对 Terraform 用户来说,它的价值在两个方向:一是 Pulumi 生态提供了与 Terraform Provider 的桥接,很多资源模型是共通的,生成的逻辑可以直接参考;二是当你的需求包含复杂条件判断和循环时,先用编程语言把逻辑理清楚,再翻译回 HCL 的 for_each,往往比一开始就硬写 HCL 更快。
核心能力
- 网页版免登录试用,输入需求即时出代码,四种语言任选。
- 生成结果附带资源关系解释,对学习云资源之间的依赖很有帮助。
- 支持从已有云账号导入现存资源,生成对应代码(适合给"手点出来的祖传环境"补代码)。
免费额度:Pulumi AI 网页对话免费使用;Pulumi Cloud 个人版免费。
实测手感:用它来理解"这个需求涉及哪些资源、依赖顺序是什么"效率很高,但如果你的团队标准就是 Terraform,多绕一层转换反而增加成本。更适合当作"设计阶段的白板",而不是直接产出交付代码。
适合谁:需要先厘清架构再落地的人,以及本身就在 Pulumi 和 Terraform 之间摇摆的团队。
五、通义灵码 / DeepSeek 等通用大模型:零门槛的 HCL 陪写
一句话定位:不用装任何东西,打开对话框就能用,胜在门槛为零和中文理解好。
别小看这个方案。对于绝大多数"我就想要一段 S3 存储桶配置""帮我把这段 HCL 改成用 for_each"的需求,直接问通用大模型是最快的。国内模型对中文需求描述的理解明显更准,你说"给对象存储加上生命周期规则,30 天转低频,90 天归档",它能准确对应到具体参数。
核心能力
- IDE 插件形态(通义灵码等)可以在
.tf文件里直接行内补全,写到一半按 Tab 就接上。 - 擅长改写和重构:把硬编码改成变量、把重复资源块改成
for_each、给模块补variables.tf和outputs.tf,这类任务成功率极高。 - 能解释报错:把
terraform plan的报错原样贴过去,多数情况下能直接指出问题在哪一行。 - 中文注释友好:生成的代码可以要求带中文注释,团队交接时省事。
免费额度:通义灵码个人版免费;DeepSeek 网页对话免费。日常使用基本不花钱。
实测手感:单资源、单模块的任务表现很好;一旦涉及具体 Provider 的冷门参数就开始编。判断方法很简单——凡是你没在文档里见过的参数名,一律去 Registry 搜一遍再用。
适合谁:所有人。哪怕你主力用 MCP 方案,改代码和查报错时它依然是最顺手的。
六、Brainboard:画架构图,自动出 Terraform
一句话定位:可视化拖拽画云架构,实时生成对应的 Terraform 代码,图和代码双向同步。
这款的思路彻底不同:你不写字,你画图。在画布上拖出 VPC、子网、EC2、RDS,连好线,右侧面板实时生成 HCL。它内置的 AI 助手还能根据一句话描述直接铺出整张架构图,再由你手工微调。
核心能力
- 图代码双向同步:改图更新代码,改代码也会反映到图上,避免文档和实现脱节。
- 内置多云组件库:AWS、Azure、GCP 的常用资源都有对应图元。
- 自动生成架构文档:出图即出文档,汇报和评审时省一大截时间。
- 内置 plan 预览和成本估算。
免费额度:提供个人免费档,可以创建有限数量的架构和代码生成,个人学习和小项目够用;团队协作功能需要付费。
实测手感:作为"跟老板和同事解释架构"的工具,它的性价比很高——生成的图直接能进方案文档。但生成的代码偏模板化,抽象层次不高,正式项目里通常还要重构成自己的模块规范。
适合谁:需要频繁做架构评审、给非技术方讲清楚拓扑的人;以及刚接触云资源、想通过可视化理解依赖关系的新手。
六款工具横向对比
| 工具 | 形态 | 参数准确率 | 免费程度 | 最适合的场景 |
|---|---|---|---|---|
| AIaC | 开源 CLI | 中 | 完全免费(自备模型) | 脚本化批量生成、多类型产物 |
| terraform-ai | 开源 CLI | 中 | 完全免费(自备模型) | 快速起临时环境、PoC |
| Terraform MCP Server | MCP + AI 编辑器 | 高 | 免费(配置稍复杂) | 正式项目、团队交付代码 |
| Pulumi AI | 网页对话 | 中高 | 免费 | 架构设计阶段理清依赖 |
| 通义灵码 / DeepSeek | 插件 / 网页 | 中 | 免费额度充足 | 改写重构、报错排查、中文需求 |
| Brainboard | 网页可视化 | 中 | 个人免费档 | 架构评审、可视化学习 |
如果只能选一个:正式项目选 Terraform MCP Server,临时需求选通用大模型,脚本化场景选 AIaC。
可直接复制的提示词模板
不管用哪款工具,提示词质量直接决定输出质量。下面这套模板是反复调优后的版本,把方括号里的内容替换成你的实际需求即可。
模板一:生成新资源
你是 Terraform 专家。请生成 HCL 代码,满足以下要求:
云厂商:[AWS / 阿里云 / 腾讯云 / Azure]
Provider 版本:[例如 aws ~> 5.0]
Terraform 版本:[例如 >= 1.5]
需求描述:
[用中文说清楚要什么,包含规格、数量、网络归属、对外暴露方式]
强制约束:
1. 必须包含 required_providers 版本约束块
2. 所有可变参数抽成 variable,带 type、description、default
3. 关键资源输出到 outputs.tf
4. 所有资源打上统一 tags,至少包含 Environment、Project、ManagedBy
5. 不要使用已废弃参数,如不确定请显式标注"需核实"
6. 只输出代码,按文件分段(main.tf / variables.tf / outputs.tf)
模板二:重构已有代码
下面是我现有的 Terraform 代码,请按要求重构:
[粘贴代码]
重构目标:
1. 把重复的资源块改写为 for_each,遍历一个 map 变量
2. 硬编码值全部抽成变量
3. 补齐缺失的 description 和 validation
4. 保持资源地址尽量不变,如必须变更请列出需要 terraform state mv 的清单
输出:重构后的完整代码 + 变更说明清单
模板三:排查报错
terraform plan 报错如下,请定位原因并给出修正后的代码片段:
[粘贴完整报错]
相关代码:
[粘贴报错涉及的资源块]
Provider 版本:[版本号]
请说明:错误根因、修正方案、修改后是否会触发资源重建。
生成之后必须跑的五道校验
AI 生成的代码在 apply 之前,建议固定跑完下面这条流水线。全部是开源免费工具,加起来不超过一分钟。
# 1. 格式化 —— 统一缩进和对齐,避免 diff 噪音
terraform fmt -recursive
# 2. 语法与内部一致性校验 —— 抓引用错误、类型不匹配
terraform init -backend=false
terraform validate
# 3. 静态规范检查 —— 抓废弃参数、不存在的实例类型、命名不规范
tflint --init
tflint
# 4. 安全与合规扫描 —— 抓公网暴露、未加密存储、过宽权限
checkov -d . --compact
# 或者
trivy config .
# 5. 变更预览 —— 最后一道人肉关卡,重点看 destroy 和 replace
terraform plan -out=tfplan
terraform show -no-color tfplan | grep -E "will be destroyed|must be replaced"
其中第三步的 tflint 尤其关键,它是唯一能可靠抓出"AI 编了一个不存在的实例规格"这类错误的工具。第四步的 checkov 则能挡住 AI 图省事写出的 0.0.0.0/0 安全组规则——这类问题的严重程度不亚于代码里的漏洞,思路和 AI代码安全扫描工具免费推荐:6款一句话揪出漏洞与硬编码密钥的神器横向对比与实操指南 里讲的一脉相承。
想再进一步的话,加一个成本闸门:infracost breakdown --path . 能算出这次变更每月增加多少钱。AI 有个很讨厌的习惯是默认给你开大规格实例,这一步能省下真金白银。
六个高频踩坑
- Provider 版本漂移:模型记忆停留在旧版本,写出的参数在新 Provider 里已经改名或删除。对策是提示词里显式声明版本,并且永远跑 tflint。
- 默认本地 state:AI 几乎不会主动配置远程后端,直接用会导致状态文件躺在某个人电脑上,团队协作立刻出事。生成后第一件事就是补
backend "s3"或对应的 OSS/COS 后端配置。 - 安全组一把梭:为了"能通",AI 很爱写
cidr_blocks = ["0.0.0.0/0"]。上生产前必须逐条收敛到实际来源网段。 - 硬编码 AMI / 镜像 ID:模型记住的镜像 ID 大概率已经失效或属于别的地域。正确做法是改用
data源动态查询最新镜像。 - 忽略 lifecycle 和依赖顺序:涉及 NAT 网关、EIP、路由表这类有隐式依赖的资源时,AI 偶尔会漏掉
depends_on,表现为 apply 随机失败、重跑又成功。遇到这种"玄学失败"优先检查依赖声明。 - 模块抽象过度或不足:要么把所有东西塞进一个 main.tf,要么给两个资源套三层模块。合理的做法是先让 AI 出扁平版本,跑通之后再手工抽模块。
常见问题
问:AI 生成的 Terraform 能直接 apply 到生产吗?
不能。至少要过完上面五道校验,并且由熟悉该云厂商的人复核一遍 plan 输出。把 AI 当成"写得很快但不了解你们规范的实习生",这个心理定位比较准确。
问:国产云(阿里云、腾讯云、华为云)支持得怎么样?
通用大模型对阿里云 Provider 的覆盖还不错,腾讯云和华为云稍弱。这种情况下 MCP 方案优势最明显,因为它是现查 Registry 文档,不依赖模型记忆。
问:已经有一堆手点出来的云资源,能让 AI 帮忙反向生成代码吗?
可以,但主力应该是工具而不是 AI。用 terraform import 配合 import 块,或者用 Terraformer 这类导出工具先拉出骨架,再让 AI 帮你整理成规范模块。纯靠 AI 凭描述反推,遗漏概率太高。
问:本地跑开源模型够用吗?
14B 以上的代码类模型写简单资源块基本够用,复杂编排会明显吃力。如果只是想零成本练手,本地模型完全可行;正式项目建议用能力更强的在线模型加 MCP。
问:Terraform 之外,其他运维配置也能这么搞吗?
思路完全通用。Kubernetes 清单可以参考 AI Kubernetes YAML生成工具免费推荐:6款一句话写出可上线K8s清单的神器横向对比与实操指南,Nginx 配置见 AI Nginx配置生成工具免费推荐:6款一句话写出反向代理与HTTPS配置的神器横向对比与实操指南,告警规则见 AI监控告警配置生成工具免费推荐:6款一句话写出Prometheus告警规则的神器横向对比与实操指南,定时任务表达式见 AI Cron表达式生成工具免费推荐:6款一句话写出定时任务调度规则的神器横向对比与实操指南。它们共同的模式都是:AI 生成 + 静态校验工具兜底。
写在最后
Terraform 这类声明式配置,恰好落在 AI 能力的甜区里——结构固定、有官方文档可查、有 plan 和静态检查做兜底。真正拉开效率差距的不是你用了哪款工具,而是有没有把"生成"和"校验"配成一条流水线。
建议的落地路径是:先花十几分钟把 Terraform MCP Server 接进你常用的 AI 编辑器,把上面三套提示词模板存成片段,再把五道校验命令写进一个 check.sh。这套组合拳配好之后,写一个中等规模模块的时间大概能从半天压到一小时,而且质量比手写更稳定——因为静态检查工具从来不会因为赶时间就放过一条 0.0.0.0/0。
版权声明
本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论