由于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”