0Pricing
DevOps Bootcamp · 课时

状态管理基础

掌握 Terraform 状态的概念,了解它为何对跟踪已部署资源至关重要,以及如何管理本地状态文件。

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

什么是 Terraform 状态?

Terraform 状态就像是基础设施的记忆。它是 Terraform 管理的资源快照。

您可以把它看作一个重要的数据库,用于跟踪 Terraform 在现实环境(您的云服务提供商)中构建和配置的内容。

状态为何重要

状态非常重要,因为它允许 Terraform:

  • 映射资源:确定哪个真实云资源对应配置中的哪个资源块。
  • 跟踪元数据:存储配置中未包含的资源属性,例如 ID 或 IP 地址。
  • 规划更改:比较期望状态(您的配置)与当前状态(状态文件),从而确定需要创建、更新或销毁哪些内容。

状态在工作流中的作用

运行 terraform apply 时,Terraform 首先查看您的 .tf 文件,以了解您希望实现的内容。然后,它会查阅状态文件,了解当前存在的内容。

通过比较这两者,Terraform 会形成一个“计划”,以达到您期望的基础设施配置。应用更改后,它会使用新的实际情况更新状态文件。

认识 `terraform.tfstate`

默认情况下,Terraform 会将状态存储在工作目录中名为 terraform.tfstate 的文件内。

此文件是一个 JSON 文档,其中包含配置与现实资源之间的完整映射。

我们的第一个资源

让我们使用简单的 null_resource 来了解状态是如何创建的。此资源不会在云中创建任何内容,但 Terraform 仍会对其进行跟踪。

将以下内容保存为 main.tf:

resource "null_resource" "my_example" {
  triggers = {
    always_run = timestamp()
  }
}

创建状态文件

首先初始化 Terraform,然后应用配置,以创建资源和 terraform.tfstate 文件。

请在终端中运行以下命令:

terraform init
terraform apply --auto-approve

列出状态中的资源

apply 完成后,您将拥有一个 terraform.tfstate 文件。您可以使用 Terraform CLI 命令检查其内容。

使用 terraform state list 查看状态中跟踪的所有资源:

terraform state list

显示资源详细信息

要从状态文件中获取特定资源的详细信息,请使用 terraform state show,后跟资源地址。

请使用我们的 null_resource 试试看:

terraform state show null_resource.my_example

不要手动编辑状态!

terraform.tfstate 文件非常重要且结构复杂。切勿手动直接编辑它。

手动编辑可能会损坏您的状态,导致:

  • 基础设施不一致。
  • Terraform 失去对资源的跟踪。
  • 意外销毁或创建资源。

请始终使用 Terraform CLI 命令(例如 terraform state mv)来操作状态。

状态管理检查

以下关于 Terraform 状态的说法哪些是正确的?

状态管理回顾

在本课中,我们学习了 Terraform 状态,这是跟踪基础设施的重要组成部分。

  • 我们了解到,状态会将您的配置映射到现实资源。
  • 本地状态文件名为 terraform.tfstate。
  • terraform state list 和 terraform state show 等命令可以帮助检查状态。
  • 为避免状态文件损坏,切勿手动编辑它。

理解状态是有效使用 Terraform 的基础!

常见问题解答

「状态管理基础」课时是免费的吗?

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

「状态管理基础」这节课中我会学到什么?

掌握 Terraform 状态的概念,了解它为何对跟踪已部署资源至关重要,以及如何管理本地状态文件。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

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

「状态管理基础」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 提供商与资源
  2. 变量与输出
  3. 状态管理基础
  4. 模块与代码复用
← 返回 DevOps Bootcamp