Terraform 飘移检测操作手册
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/terraform-drift-detection-runbook。
技能介绍
解决什么问题
当你用 Terraform 管理 AWS、GCP、Azure 基础设施时,最棘手的问题之一就是“飘移”(drift)——手动改动了云资源后,状态文件与实际运行环境不再一致。这种不一致会导致后续 terraform apply 出现意外,甚至覆盖你的手动更改。本技能专注于自动检测这类飘移,让你在部署前就发现问题。
工作原理
核心能力包括两个方面:
- 使用
terraform plan -detailed-exitcode获取详细的计划输出,该命令通过退出码告诉你是否有需要关注的变更。 - 通过 Terraform Cloud API 拉取远端状态信息,并与其存储的 state file 进行比对。
关键步骤如下:
- 对比 state file 中记录的资源属性与 live environment 中的实际值。
- 覆盖 AWS、GCP、Azure 三大主流云提供商的检测场景。
- 输出差异点,帮助你定位是哪一项资源发生了非预期变更。
适用边界
这项技能并不自动修复飘移,它只负责检测。你需要手动审核结果,决定是否执行 terraform apply 来让状态回归一致。另外,必须确保执行环境拥有访问 Terraform Cloud API 的权限,并且 state file 本身是准确和最新的。对于没有纳入 Terraform 管理的资源,本技能无法检测。
使用场景
- 运维同事在 AWS 控制台手动修改了安全组规则后,你需要在下次部署前确认 Terraform state 与实际资源的差异。
- GCP 实例被手动扩容后,你要快速对比 state file 与 live environment,判断哪些属性发生了非预期变更。
- Azure 环境经过应急修复后,你想在 CI 流水线中自动检测飘移,避免未审阅的变更进入生产。
- 跨 AWS 和 GCP 的多个环境配置不一致时,你需要统一拉取各 provider 的 state 进行差异分析。
适合人员
- 云平台工程师:日常维护 AWS/GCP/Azure 资源,需要在部署前自动发现手动变更并决定是否回滚。
- 基础设施 DevOps:管理多套 Terraform state,想在每次 apply 前先确认是否存在飘移风险。
- 安全审计人员:定期核对 state file 与 live 环境是否一致,确保没有未经批准的配置变更。
- 多云架构师:同时管理 AWS、GCP、Azure 的资源,需要统一工具来监控各平台的飘移情况。