Git_TerraCLI

发布: (2026年2月16日 GMT+8 13:25)
4 分钟阅读
原文: Dev.to

Source: Dev.to

这是一次 GitHub Copilot CLI 挑战的提交。我构建了一个 Copilot CLI Agent,能够自动重构 Terraform 弃用项并使用模型上下文协议(MCP)创建拉取请求。再也不需要手动升级、错过警告或导致流水线中断。

该方案集成了:

  • GitHub Copilot CLI Agent(自定义名称 copilot
  • Terraform MCP 服务器
  • Azure DevOps Pipelines
  • 在 Azure Repos 中自动创建 PR
  • 持续维护 azurerm 提供程序

结果: 基础设施维护实现了自动化。

🧩 问题

Terraform 项目——尤其是使用 Azure 提供程序的项目——会快速累积技术债务。每一次 HashiCorp azurerm 提供程序的新版本都会引入:

  • 已弃用的资源
  • 重命名的参数
  • 行为变化
  • 破坏性更新
  • 随时间产生的计划失败

在数十个 .tf 文件中手动修复这些问题会导致:

  • ❌ 耗时
  • ❌ 易出错
  • ❌ 常被延后
  • ❌ 在生产环境中风险高

💡 解决方案

我设计了一个全自动的修复代理,能够:

  1. 检测过时的提供程序版本
  2. azurerm 升级到最新兼容版本
  3. 运行 terraform plan
  4. 使用 MCP 获取已弃用字段的精确替代方案
  5. 安全地重构代码
  6. 验证更改
  7. 自动创建拉取请求

所有这些都在 Azure Pipeline 中运行,无需人工干预。使用 agent mode 的 GitHub Copilot CLI 将其从代码生成工具转变为自主开发者。

亮点

  • 上下文感知: 代理了解仓库结构、Terraform 语义、流水线环境以及所需的工作流步骤。
  • 开发速度: 通常需要数小时的任务被压缩到几分钟(编写复杂的流水线逻辑、处理提供程序升级、创建 PR 自动化、集成 MCP)。

🧠 从助手 → 代理

本项目展示了 AI 从助手转向团队成员、能够端到端执行任务的转变。该代理实现了:

  • 🛡️ 持续符合提供程序更新的合规性
  • ⚡ 更快的升级周期
  • 🧹 降低技术债务
  • 🤖 自动化 DevOps 操作
  • 🏢 企业级可扩展性

🔮 未来改进

计划中的增强功能包括:

  • 在创建 PR 时通过 Slack / Teams 发送通知
  • 多提供程序支持(AWS、GCP)
  • 漂移检测集成
  • 安全策略检查
  • 通过绿色验证自动合并
  • 使用 ChatOps 命令触发更新

🧪 使用的关键技术

  • GitHub Copilot CLI(Agent Mode)
  • Terraform
  • Model Context Protocol(MCP)
  • Azure DevOps Pipelines
  • Docker
  • Azure CLI
  • PowerShell
  • 在流水线中进行的拉取请求自动化
0 浏览
Back to Blog

相关文章

阅读更多 »

n8n 是纯粹的精彩

!Miguel Valdeshttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2...