我有 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 状态。有人可以指出我缺少什么吗?
尝试通过将变量恢复到原始状态来修复漂移,但计划输出仍然保持不变(在描述中提到)。
对于变量,重命名它们或将它们移动到不同的
.tfvars
文件中并不重要,只要它们对应的值不改变即可。
将资源移动到
same模块中的不同
.tf
文件中也没有任何区别,只要您不重命名它们或更改它们的创建方式(例如,更改要使用的资源) count
或 for_each
循环)。