将变量赋值从 tf 移动到 tfvars 后,Terraform 状态不匹配

问题描述 投票:0回答:1

我有 Terraform 代码,可以在 Variables.tf 中定义和分配变量值,并在单个整体 main.tf 文件中创建资源。
最近,为了便于阅读,多个服务已移至单独的 TF 文件(例如 resourcesgroup.tf 和 storage.tf),并且变量值现在分配在 env-vars/env-main.tfvars 和 env-vars/env-admin 中.tfvars.

文件夹结构:

.
├── env-vars/
│   ├── admin.tfvars
│   └── main.tfvars
├── main.tf
├── resourcegroup.tf
├── storage.tf
└── variables.tf

admin.tfvars

name = "hello"

变量.tf

variable "name" {
  type = string
}

进行这些修改后执行以下计划命令,计划输出会显示一些重新创建部分但不是全部资源的更改。

terraform plan -var-file="env-vars/env-main.tfvars" -var-file="env-vars/env-admin.tfvars" -o ENV.out

我预计会有一些小的、不太重要的修改。尽管如此,根据输出,我认为它无法识别已部署的资源或从存储容器 blob 中准确提取 TF 状态。有人可以指出我缺少什么吗?

  • Terraform 版本:1.8.1
  • AzureRM 提供程序版本:3.89.0

尝试通过将变量恢复到原始状态来修复漂移,但计划输出仍然保持不变(在描述中提到)。

azure terraform terraform-provider-azure
1个回答
0
投票

对于变量,重命名它们或将它们移动到不同的

.tfvars
文件中并不重要,只要它们对应的值不改变即可。

将资源移动到

same
模块中的不同 .tf 文件中也没有任何区别,只要您不重命名它们或更改它们的创建方式(例如,更改要使用的资源)
count
for_each
循环)。

© www.soinside.com 2019 - 2024. All rights reserved.