Terraform Apply具有与Terraform Plan不同的“计划”

时间:2019-05-28 07:21:36

标签: terraform

我有时看到 Terraform Apply 具有与 Terraform Plan 不同的“计划”。

例如,今天我看到了我尝试“ Terraform Apply ”使用的TF文件之一,结果只有1个“ change”和1个“ add”,而却得到了“ 3 add”,使用“ 地形计划

时,“ 1次更改”和“ 3次销毁”

我使用Terraform仅两个月了。这是Terraform中的预期行为吗?

有人可以对此行为做出解释吗?谢谢!

Terraform version: 0.11.13

5 个答案:

答案 0 :(得分:0)

当您像这样运行Terraform时,也会发生这种情况吗?

terraform plan -out "planfile"

terraform apply -input=false "planfile"

然后,Terraform应该完全(且仅)应用terraform plan命令中的更改...

答案 1 :(得分:0)

您能解释完整的情况吗?通常,以我的经验,这是相同的。 我只能看到的区别-您正在使用带有计划和应用的变量文件,并且某些变量会导致一些资源,而其他方式可能是如果您使用远程位置来表示状态,而其他工作/人员也正在更新状态。 如果您在本地运行所有内容,则不应发生这种情况。

答案 2 :(得分:0)

Terraform构建所有资源的图形,然后并行创建非依赖资源,以使资源创建效率略高。资源创建失败吗?它会使Terraform处于部分应用状态,该状态会记录在tfstate文件中。解决资源问题之后,当您重新应用.tf文件时,它仅显示要更改的新资源。在您的情况下,我认为这与以下事实有关:某些资源具有“先破坏后创造”的策略,该策略会在结果中显示出来。因此,当您将更改应用于1个资源时,它最终显示1个资源已删除,并创建了1个。这种情况发生在某些非“创作前破坏”类型的资源上,最终会像上面提到的那样为您提供输出

答案 3 :(得分:0)

这不是terraform的预期行为,除非任何地方都有混乱。到目前为止,我从未见过此类问题。通过terraform plan命令后,您是否曾经编辑或删除过.tfstate状态文件?如果您再次发现此问题或仍然遇到此类问题,则可以与产品负责人联系。但是我不认为这是一个问题,您将再也不会面对这种问题。

答案 4 :(得分:0)

这是意外的行为,但最佳实践是:

  1. terraform plan -out deploy.tfplan

它将计划保存在deploy.tfplan文件中。

  1. 现在,terraform应用deploy.tfplan。

这将确保您所需的计划始终得到执行。