理解 Terraform 计划与应用
学习 Terraform 的核心工作流:plan 如何预览更改、apply 如何执行更改,这是安全基础设施即代码的核心。
理解 Terraform 计划与应用 是 CoddyKit 上的免费 Terraform Infrastructure as Code 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Terraform Infrastructure as Code 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Terraform Infrastructure as Code 课程共包含 4 节课。
核心工作流
Terraform 的日常循环很简单:编写配置,运行 plan 进行预览,然后运行 apply 使其生效。掌握计划与应用是安全 IaC 的核心。
plan 的作用
terraform plan 会比较三项内容——您的配置、当前状态和实际基础设施——然后显示用于使它们保持一致的操作,但不会进行任何更改。
terraform plan阅读符号
计划输出使用以下符号:+ 表示创建,- 表示销毁,~ 表示就地更新,-/+ 表示先销毁再重新创建(即替换)。
示例计划
添加 S3 存储桶会生成类似下面的计划——需要添加一个资源。
Terraform will perform the following actions:
# aws_s3_bucket.logs will be created
+ resource "aws_s3_bucket" "logs" {
+ bucket = "my-logs"
+ id = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.应用后已知
有些值(例如生成的 ID 或 IP)目前还无法预测。Terraform 会将它们标记为应用后已知,待资源实际创建后再填入。
保存计划
您可以将计划保存到文件中,稍后应用完全相同的计划,从而确保 apply 严格执行您审查过的内容,不多做任何操作。
terraform plan -out=tfplan
terraform apply tfplanapply 的作用
terraform apply 通过提供商 API 执行计划中的操作,然后更新状态文件。如果没有保存的计划,它会先显示计划并询问您。
terraform apply确认提示
默认情况下,apply 会暂停并要求您输入 yes 才能继续。自动化可以使用 -auto-approve,但只能用于您已经审查过的计划。
依赖排序
Terraform 会构建依赖关系图,并按正确顺序应用资源——例如自动先创建安全组,再创建引用该安全组的实例。
幂等性
Terraform 具有幂等性:在没有任何更改的情况下再次应用,您会得到“没有更改”。配置是事实来源,因此重复应用最终会收敛到一致状态。
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.最佳实践
始终先运行 plan 再运行 apply,并像进行代码审查一样检查计划——特别留意销毁操作。在 CI 中使用已保存的计划;绝不要手动编辑状态。
快速检查
测试您对 plan/apply 的理解。
回顾
回顾:plan/apply 循环是 Terraform 的核心——plan 比较配置、状态和实际情况;使用 -out 保存计划;apply 按依赖顺序运行;并且具有幂等性。
常见问题解答
「理解 Terraform 计划与应用」课时是免费的吗?
是的 — 「理解 Terraform 计划与应用」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Terraform Infrastructure as Code 课程的其余内容,请升级到 CoddyKit PRO。 Terraform Infrastructure as Code 课程共包含 4 节课。
「理解 Terraform 计划与应用」这节课中我会学到什么?
学习 Terraform 的核心工作流:plan 如何预览更改、apply 如何执行更改,这是安全基础设施即代码的核心。 你通过在浏览器中直接运行的动手代码来练习 Terraform Infrastructure as Code,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Terraform Infrastructure as Code 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Terraform Infrastructure as Code 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「理解 Terraform 计划与应用」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Terraform Infrastructure as Code 课中编写并运行代码吗?
能。每节 Terraform Infrastructure as Code 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- IaC 与 Terraform 简介
- Terraform 安装与 CLI 基础
- 您的第一个 Terraform 配置
- 理解 Terraform 计划与应用