前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
AI 面试
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
AI 热点
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
AI 面试
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
AI 热点
开发者导航
返回 AI 情报前线
All News · 全部资讯6962
  • Ray 分布式框架 CVE-2025-62593 远程代码注入漏洞已被积极利用
  • 2026 年 AI 工程师招聘:三个真正有用的技能
  • 2026年AI工程师招聘看重的三项实战技能
  • dejavu: 让AI编码Agent记住失败教训的开源插件
  • 利用Hugging Face与RAG构建本地GPU合规审查系统
  • C++令牌桶限速器通过全部单元测试,却败给NTP时钟跳变
  • 模型没问题,是token假设出错:长文本分类静默降级根因
  • 重试循环是Token焚烧炉:分级端点级联路由设计
  • OpenBin.ai:免费AI反编译器实战恶意软件分析
  • trustmcp:MCP服务器安全扫描CLI工具
  • MCP在生产环境失败的三个根因分析
  • Slack 推出 Code 功能:AI 编程 Agent 直接在频道内写代码
  • 开源 CLI 用 AI 自动修复 Terraform 漂移
  • 我用AI编码一年:全流程 agent 实践复盘
  • 免费额度用调试:AI 辅助调试的高价值工作流
  • AI编码代理的令牌预算事后分析
  • 开源前端AI代码基准OpenVibeEval
  • 与其跑模型基准,不如用免费Token模糊测试自己的代码
  • AI记忆不用向量库:SQL在百万元素规模更实用
  • rag-mcp:用LanceDB+Tantivy实现本地混合搜索MCP服务
  • 一文读懂MCP、Skills与Plugins的区别
  • AI编程Agent生成PR时测试覆盖率严重不足
  • Browser Agent误读React-Select:写入可见文本却未提交实际值
  • MCP协议新路线图:五大改进方向直击生产级痛点
  • Oraclebone:让AI占卜脚本可审计,结果不由模型捏造
  • Firecrawl vs Jina Reader vs Tavily:RAG 网页抓取工具实战对比
  • Node.js 语音转文字的三段式验证架构
  • AI编程记忆系统为何仍败给文本文件
  • HTML 转 Markdown 真实压缩率:基准测试忽视的真相
  • Mistral Small 3.2 24B 实测:单 GPU 可运行的开源模型
  • 用版权数据训练AI模型:法律风险深度分析
  • AI编码Agent六小时修复412个无障碍违规的实战复盘
  • 本地LLM与官方Demo效果差异:KL散度的幕后影响
  • Chrome 扩展 MV3 工程实战:零崩溃架构与隔离上下文设计
  • Azure OpenAI PTU vs 按量付费:真实盈亏平衡表
  • OpenAI前沿模型已能发动复杂网络攻击,内部暂停部分训练加强安全
  • Python 异步代码仍在阻塞?事件循环饥饿的诊断与修复
  • AI Agent 防火墙实战:从 73 到 1600+ 测试用例的安全护栏设计
  • AI Agent 盲路由:不暴露内网拓扑的消息传递方案
  • 开源模型医疗落地:SWE-bench 80.6% 成绩与离线部署架构
  • Q Developer:一键让AI读项目、改代码、执行命令
  • AI编程 agents 遗忘症:持久记忆方案Tacit
  • 12岁少年用手机开发AI编程导师:移动端+无IDE的工程实践
  • 已加载 43 / 6962
8.0
热点
AI SCORE
编程提效2026-08-24 01:37

开源 CLI 用 AI 自动修复 Terraform 漂移

dev.to · AI#开源#Terraform#AI运维
Editor brief · 编辑速览

tfdrift 新增 remediate 子命令,可自动扫描所有 workspace 的基础设施漂移并生成修复 .tf 文件,目前支持 Slack/Teams/OpsGenie 告警。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

如果你长期使用 Terraform,一定有过这种体验:跑一下 terraform plan,突然冒出来 12 个意料之外的变更。有人直接在控制台改了实例类型,安全组规则被人手动加了一条,某个 tag 被删掉了。基础设施发生了漂移——现在你得搞清楚哪里变了、为什么变、以及如何让它恢复正常。

检测漂移是一回事,真正动手修复才是工程师浪费时间的地方。

这就是我构建 tfdrift remediate 要解决的问题。

tfdrift(https://github.com/sudarshan8417/tfdrift)是一个开源 CLI 工具,用于持续检测 Terraform 和 OpenTofu 的漂移。它在你的所有 workspace 上运行 terraform plan,按严重程度(critical / high / medium / low)对漂移进行分类,然后通过 Slack、Teams 或 OpsGenie 发送告警。

0.5.3 版本引入了一个新命令——tfdrift remediate——它接收检测到的漂移,利用 AI 生成一个可以直接审查的 .tf 修复文件。

手动修复漂移的问题

检测到漂移后,典型的工作流程是:

  • 查看 terraform plan 的输出
  • 弄清楚哪些属性发生了变化
  • 手动更新你的 .tf 文件,使其匹配期望状态

1-2 个资源时这还好。当涉及 10+ 个资源、跨多个 workspace,尤其是处理 aws_security_group、aws_iam_role_policy、azurerm_virtual_network 这类复杂资源类型时,这就变成了一个缓慢且容易出错的过程。

tfdrift remediate 的工作原理

tfdrift remediate --path ./infra
  • 扫描所有 Terraform workspace 的漂移情况
  • 列出每个漂移资源及其严重程度和变更属性数量
  • 询问你是想修复全部,还是只修复特定资源
  • 调用 AI(Claude 或 GPT-4o),并传入完整的漂移上下文
  • 生成一个 drift-remediation.tf 文件供你审查和应用

交互式提示界面如下:

Found 3 drifted resource(s):

aws_instance.web 🔴 high — 2 attribute change(s)

aws_s3_bucket.logs 🟡 medium — 1 attribute change(s)

aws_security_group.app 🔴 high — 3 attribute change(s)

What would you like to remediate? A — All resources S — Select specific resources (comma-separated numbers) Q — Quit

选择 S 并输入 1,3 可以只修复高严重程度的资源。或者直接按 A 为所有资源生成修复方案。

AI 会收到完整的漂移上下文——资源类型、需要执行的操作,以及每个变更属性的期望值与实际值。它输出有效的 HCL,并在行内注释中解释每项修正:

resource "aws_instance" "web" {
  instance_type = "t3.medium" # corrected: actual was t3.large
  # ... other attributes unchanged
}

resource "aws_security_group" "app" {
  ingress {
    from_port   = 443
    to_port     = 443
    protocol    = "tcp"
    cidr_blocks = ["10.0.0.0/8"]
  }
  # ... other attributes unchanged
}

审查后做任何必要的调整,然后应用:

terraform apply drift-remediation.tf

双 AI provider 支持

tfdrift remediate 会根据你的环境变量自动检测使用哪个 AI provider:

  • 设置 ANTHROPIC_API_KEY → 使用 Claude(首选)
  • 设置 OPENAI_API_KEY → 使用 GPT-4o(备选)

也可以强制指定某个 provider:

tfdrift remediate --provider openai --path ./infra
pip install 'tfdrift[ai]'

export ANTHROPIC_API_KEY=sk-ant-... tfdrift remediate --path ./infra

export OPENAI_API_KEY=sk-... tfdrift remediate --path ./infra

tfdrift remediate --all

tfdrift remediate --output my-fixes.tf

tfdrift remediate --binary tofu

为什么不用 terraform apply 直接搞定?

tfdrift remediate 不同于 tfdrift scan --auto-fix(后者直接运行 terraform apply)。AI 修复命令生成的是一个文件,先让你审查——AI 会解释它在修正什么、为什么这么改,然后你确认没问题后再应用。

在生产环境中这一点很重要。你需要一个人在上线之前审核这个修复方案。

其他功能亮点:

  • 多 workspace 修复方案合并到一个文件中
  • 按严重程度过滤(--min-severity high 只修复 critical 和 high 级别的漂移)
  • GitHub PR 生成——自动打开一个包含修复文件的 PR

tfdrift 是开源软件(Apache 2.0)。如果你正在使用它或有反馈意见,欢迎在 GitHub 上提 issue 或点个 star(https://github.com/sudarshan8417/tfdrift)。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
Slack 推出 Code 功能:AI 编程 Agent 直接在频道内写代码
下一篇
我用AI编码一年:全流程 agent 实践复盘