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 输出的内容,你可以检查各项资源的增加、修改或删除操作,确认是否符合预期,从而做出是否继续应用的决策。

Loading

Facebook评论