我应该使用 `terraform plan`+`terraform apply <plan_file>` 而不是 `terraform apply` 吗?

kor*_*rda 1 terraform

由于terraform apply似乎显示了它应该做的所有事情,而且我仍然需要输入,所以我认为在非交互式环境中使用它yes几乎没有什么用处(例如在 jenkins 上运行 terraform,并在和之间进行手动确认步骤)。terraform planplanapply

从命令行运行命令时使用terraform plan+有什么优点吗?terraform apply <plan_file>

Mar*_*ins 6

单独的terraform plan命令有两个不同但相关的目的:

  • 当您在工作流程要在应用之前进行代码审查的环境中进行更改时terraform plan(不带参数),您可以尽可能彻底地进行测试,而无需对基础架构进行任何更改。此用例有时称为“推测计划”,因为无意实际应用以这种方式生成的计划:我们只是在提交更改以供审核之前运行它以从 Terraform 获取反馈。

  • 您正在自动化运行 Terraform,terraform plan -out=tfplan对于运行计划非常有用,并且可以使用 Terraform CLI 外部提供的交互式审批 UI 作为完全独立的步骤进行应用。

如果您仅在本地使用 Terraform 并打算terraform apply应用您的计划,那么与仅进行交互式批准相比,运行单独的计划并应用确实没有任何好处。terraform apply当您直接从命令行而不是自动化运行 Terraform 时,不带参数的命令是使用 Terraform 应用更改的主要方式。