【发布时间】:2022-02-16 15:11:47
【问题描述】:
只是想知道terraform init 在每个terraform plan 之前是否是必填项?
即如果我已经完成了terraform init,但即将根据一些更改的 Terraform 代码进行第二次terraform plan,您是否需要再进行一次terraform init?
【问题讨论】:
标签: terraform
只是想知道terraform init 在每个terraform plan 之前是否是必填项?
即如果我已经完成了terraform init,但即将根据一些更改的 Terraform 代码进行第二次terraform plan,您是否需要再进行一次terraform init?
【问题讨论】:
标签: terraform
视情况而定。
根据您更改的 Terraform 代码的具体内容,您可能需要重新运行 init。例如,如果您对已配置的后端进行了更改,则需要重新运行 terraform init 以使用这些更改重新初始化。如果更改是针对脚本的非 terraform 配置部分,terraform plan 和 terraform apply 应该可以单独使用。
另外需要注意的是,如果您正在使用模块,并且您在模块中进行了更改,则需要在运行 plan 或 apply 之前重新运行 terraform get -update 以获取这些更改。
【讨论】:
init 命令具有安装提供程序插件的额外责任,因此为新提供程序添加第一个资源将是重新运行它的进一步原因。跨度>
同意以上所有答案,但这里要补充一点,即使没有任何变化,多次运行 terraform init 也是安全的,它不会影响任何事情。
【讨论】:
视情况而定。terraform init 命令用于初始化包含 Terraform 配置文件的工作目录。如果您没有更改 terraform 配置(可以说的关键字),则无需发出 terraform init。相反,您可以 terraform plan 和 terraform apply。通常 terraform 告诉,如果 terraform 需要由消息初始化
【讨论】:
terraform init 运行状态取决于发生了什么变化,以防插件或后端配置发生变化。
多次运行此命令始终是安全的,以使工作目录随着配置的更改而更新。虽然后续运行可能会出错,但此命令永远不会删除您现有的配置或状态。
因此,您可以在每次运行 terraform plan 时运行 init 以保持最新状态。
如果没有变化,则跳过它。
但是,如果有多个人在处理该项目并且您将状态存储在某个地方,那么请始终在运行 terraform plan 之前运行 terraform init。
【讨论】: