【问题标题】:Terraform apply on existing ARM resources. Is state needed?Terraform 适用于现有的 ARM 资源。需要状态吗?
【发布时间】:2019-06-18 18:33:28
【问题描述】:

Terraform v0.11.11
provider.azurerm v1.21.0

我已完成将 ARM 模板转换为 Terraform 并开始向 TF 而不是 ARM 添加新内容。将 terraform 应用于现有部署是否安全,因为这就是我现在所拥有的一切?

还有一个问题。由于我在使用 ARM 模板时没有任何持久状态,我是否必须使用该状态,或者 Terraform 是否会将现有资源与 tf 模板进行比较并执行“合并”/“更新”?

我是否必须将每个资源单独导入状态文件/blob,例如Error Importing existing resources into Terraform State File

谢谢

【问题讨论】:

  • 请出示您所做的代码,并清楚地询问您需要改进的地方。

标签: azure terraform arm-template azure-template terraform-provider-azure


【解决方案1】:

是的,在将 terraform 应用于在 terraform 之外创建的现有资源之前,您需要“保存\收集”状态。关于它的安全性 - 在您为 TF 添加状态后,它将能够判断它是否会对它们进行任何更改。

【讨论】:

  • 谢谢!一个小问题。与在每次 TF 运行之前收集状态相比,将状态保存在文件/blob 中有什么好处?
  • 好吧,我不是最大的 TF 专家,但我想说存储状态的主要价值主张是锁定。因此,当您启动 tf apply 时,它会锁定状态。所以其他人使用 tf 尝试将更改应用于相同的资源它不会起作用,因为你已经在这样做了
  • 在这里收集状态是什么意思?如果您的意思是刷新,那么这只是检测已知资源的漂移,而不是找到不在状态文件中的资源。
  • 不确定我是否理解这个问题,抱歉。我从来没有说过它会刷新状态\检测不在状态文件中的资源的状态
  • 将状态(现有资源)导入 tf 并运行 tf plan\apply
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
  • 2021-02-15
  • 2021-08-25
  • 2021-01-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
相关资源
最近更新 更多