将Terraform workspaces与local backend结合使用的预期配置是什么?
本地后端支持workpacing,但是您似乎并不能完全控制存储实际状态的 位置。
当您不使用工作空间时,可以向本地后端提供一个path
参数,以控制状态文件的存储位置。
# Either in main.tf
terraform {
backend "local" {
path = "/path/to/terraform.tfstate
}
}
# Or as a flag
terraform init -backend-config="path=/path/to/terraform.tfstate"
我期望使用工作空间时具有类似的功能,因为您将提供path
的目录,并且工作空间将在该目录下创建
例如:
terraform new workspace first
terraform init -backend-config="path=/path/to/terraform.tfstate.d"
terraform apply
terraform new workspace second
terraform init -backend-config="path=/path/to/terraform.tfstate.d"
terraform apply
将导致状态
/path/to/terraform.tfstate.d/first/terraform.tfstate
/path/to/terraform.tfstate.d/second/terraform.tfstate
但是事实并非如此。看来本地后端会忽略path参数,并将工作区配置放在工作目录中。
我错过了什么吗?还是无法控制本地后端工作区状态?
答案 0 :(得分:0)
解决此问题的本地后端workspace_dir
有一个未记录的标志。
跟踪文档任务here
terraform {
backend "local" {
workspace_dir = "/path/to/terraform.tfstate.d"
}
}