Terraform – Plan Out的使用
1. 为什么需要使用 plan out?它解决了什么问题
- 确保计划与执行一致
当你执行terraform plan
时,会生成一个变更预览报告。但环境在短时间内可能会发生变化,如果不保存计划,apply 时可能与预览不符。使用-out
参数可以将计划冻结,保证审核的计划和实际执行的计划完全一致。 - 降低误操作风险
保存执行计划文件(例如tfplan.out
)可以让团队在执行前仔细检查,避免因误操作或配置错误导致的不必要更改,从而提高生产环境的安全性。 - 支持自动化流程和审批机制
在 CI/CD 流程中,可以将 plan 文件作为一个中间产物,在经过人工或自动审批后,再传递给terraform apply
执行,确保每一步都经过充分验证。
2. 如何使用 plan out
- 生成计划文件
使用-out
参数生成计划并保存到文件中:
terraform plan -out=tfplan.out
这条命令会根据当前 Terraform 配置和状态,生成一个执行计划,并将其保存为 tfplan.out
文件。
- 应用保存的计划
一旦计划经过审核确认,就可以使用该计划文件来应用变更:
terraform apply tfplan.out
这样可以确保你看到的变更与实际执行的是完全一致的。
3. 如何查看 plan
- 使用 terraform show 命令
生成的plan file 是binary的,所以无法使用text editor解读,必须使用command
如果你想在应用前详细查看计划文件中的内容,可以运行:
terraform show tfplan.out
该命令会输出一个人类可读的格式,展示所有计划中的变更细节,便于审查和讨论。
- 能够输出json格式
terraform show -json infra.plan | jq

- 检查计划内容
通过terraform show
输出的内容,你可以检查各项资源的增加、修改或删除操作,确认是否符合预期,从而做出是否继续应用的决策。
Facebook评论