0Pricing
DevOps Bootcamp · 课时

管理状态漂移与协调

检测、诊断并协调状态漂移,即 Terraform 状态与真实基础设施之间的差异,避免其导致中断或意外更改。

管理状态漂移与协调 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

什么是漂移

当真实基础设施在 Terraform 之外发生更改时,就会出现漂移:例如工程师在控制台中调整设置,或其他工具修改资源。此时状态与现实不一致,下一次 apply 可能会意外恢复或覆盖这些更改。

使用 plan 检测漂移

普通的 terraform plan 会刷新状态并显示差异。如果资源发生了漂移,计划会报告您未在代码中进行的更改。

terraform plan

仅刷新计划

如果要查看漂移而不提出配置更改,请使用仅刷新计划。它会更新状态,使其匹配现实,并显示两者之间的差异。

terraform plan -refresh-only

阅读漂移报告

Terraform 会用检测到的更改标记发生漂移的属性。波浪号表示原地更改;减号/加号组合表示某个值在 Terraform 之外被添加或删除。

# aws_instance.web has changed
  ~ instance_type = "t3.micro" -> "t3.small"

协调差异的两种方式

发现漂移后,您需要选择一个方向:

  • 接受现实——更新代码,使其匹配新状态。
  • 恢复代码——执行 apply,将基础设施恢复为配置所声明的状态。

将漂移接受到状态中

如果手动更改是有意进行的,请运行 apply -refresh-only,将现实记录到状态中,然后更新代码使其匹配,以便后续计划保持干净。

terraform apply -refresh-only

恢复漂移

如果更改未经授权,普通的 terraform apply 会将基础设施恢复为声明的配置,从而撤销手动编辑。

terraform apply

定位单个资源

如果要进行针对性修复,-target 会将操作限制为一个资源。请谨慎使用,因为它可能掩盖更广泛的漂移。

terraform apply -target=aws_instance.web

防止虚假漂移

某些属性由 AWS 或其他工具管理。请使用 ignore_changes,让 Terraform 停止与它们反复争夺控制权。

resource "aws_instance" "web" {
  lifecycle {
    ignore_changes = [tags["LastScanned"]]
  }
}

持续检测漂移

在 CI 中按计划运行仅刷新计划,以便尽早发现漂移。Terraform Cloud 提供内置的漂移检测功能,会在状态与现实不一致时发出提醒。

on:
  schedule:
    - cron: "0 6 * * *"

文化胜过工具

防止漂移的最佳方式是流程:限制控制台写入权限,通过 Terraform 处理所有更改,并将手动编辑视为事件。工具可以检测漂移,纪律才能避免漂移。

快速检查

测试您对漂移管理的掌握情况。

回顾:保持状态准确

现在您已经能够处理漂移:

  • 使用 plan 或 plan -refresh-only 检测漂移。
  • 通过 apply -refresh-only 加上代码更新来接受漂移。
  • 使用普通的 apply 恢复漂移。
  • 使用 ignore_changes 和按计划执行的检查,提前发现问题。

常见问题解答

「管理状态漂移与协调」课时是免费的吗?

是的 — 「管理状态漂移与协调」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「管理状态漂移与协调」这节课中我会学到什么?

检测、诊断并协调状态漂移,即 Terraform 状态与真实基础设施之间的差异,避免其导致中断或意外更改。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「管理状态漂移与协调」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 调试 Terraform 配置
  2. 性能优化策略
  3. 使用 Terraform 进行灾难恢复
  4. 管理状态漂移与协调
← 返回 DevOps Bootcamp