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

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

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

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

答案1

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

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

  • 你是自动化运行 Terraform然后terraform plan -out=tfplan对于运行计划并应用作为完全独立的步骤很有用,并在 Terraform CLI 之外提供交互式批准 UI。

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

答案2

如果您想要版本控制,plan 可能有助于保存存档和 tfstate 文件。顺便说一句,您可以使用 -auto-approve 来避免输入“yes”

相关内容