terraform是否适用还会针对已部署的内容刷新状态?

时间:2019-04-04 10:17:22

标签: terraform

假设我在运行terraform apply时没有使用refresh标志并且未提及任何计划。

terraform会相对于已部署的状态刷新我定义为IaC的状态吗?还是只查看我当前的状态文件,并将其与我更新为IaC的文件进行比较。

文档中没有提到terraform的默认刷新行为。

2 个答案:

答案 0 :(得分:1)

terrain apply将始终检查新状态。默认情况下,任何地形操作都将始终首先刷新状态。理想情况下,您应始终执行free_page(),然后使用terraform plan -out <planName>.plan在环境中应用此计划。这样可以确保一致性,并且您完全知道环境中将要发生的情况。 如果计划旧了,同时环境发生了变化,则terraform会检测到该情况并给您带来错误-迫使您重新计划并应用。

答案 1 :(得分:1)

Terraform将在运行依赖状态的命令(例如planapplydestroy)之前自动刷新状态。

您可以通过查看运行以下命令的输出来自己查看:

$ terraform plan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

data.aws_region.current: Refreshing state...

------------------------------------------------------------------------

No changes. Infrastructure is up-to-date.

This means that Terraform did not detect any differences between your
configuration and real physical resources that exist. As a result, no
actions need to be performed.