Form terraform version 0.10+ 有一种方法可以使用 Workspace 命令来维护状态文件
$ terraform workspace list // The command will list all existing workspaces
$ terraform workspace new <workspace_name> // The command will create a workspace
$ terraform workspace select <workspace_name> // The command select a workspace
$ terraform workspace delete <workspace_name> // The command delete a workspace
您需要做的第一件事是为您的环境创建每个工作区
$ terraform workspace new dev
创建并切换到工作区“dev”!
您现在位于一个新的空工作区。工作区隔离它们的状态,
因此,如果您运行“terraform plan”,Terraform 将看不到任何现有状态
对于这个配置。
$terraform workspace new test
创建并切换到工作区“测试”!
您现在位于一个新的空工作区。工作区隔离它们的状态,
因此,如果您运行“terraform plan”,Terraform 将看不到任何现有状态
对于这个配置。
$terraform workspace new stage
创建并切换到工作区“舞台”!
您现在位于一个新的空工作区。工作区隔离它们的状态,
因此,如果您运行“terraform plan”,Terraform 将看不到任何现有状态
对于这个配置。
将创建后端 terraform.tfstate.d 目录
在它们下面你可以看到 3 个目录 - dev、test、stage,每个目录都会在其工作空间下维护其状态文件。
现在您需要做的就是将环境变量文件移动到另一个文件夹中
每次执行 terraform plan , terraform apply 只保留一个变量文件
main.tf
dev_variable.tfvar
output.tf
记得切换到正确的工作区使用正确的环境状态文件
$terraform workspace select test
main.tf
test_variable.tfvar
output.tf
参考:https://dzone.com/articles/manage-multiple-environments-with-terraform-worksp