# Using a single workspace:
terraform {
backend "remote" {
hostname = "app.terraform.io"
organization = "company"
workspaces {
name = "my-app-prod"
}
}
}
对于Terraform远程后端,是否可以使用变量来指定组织/工作空间名称,而不是那里的硬编码值?
Terraform documentation 似乎也没有提及任何相关内容。
答案 0 :(得分:2)
backend configuration documentation对此进行了详细介绍。要注意的重点是:
只能指定一个后端,并且配置不得包含插值。 Terraform将对此进行验证。
如果要使其易于配置,则可以对静态部件(例如后端的类型,例如S3)使用partial configuration,然后在运行时通过环境变量或通过命令行交互地提供配置标志。
我亲自将Terraform操作包装在一个小型{{1}}运行的shell脚本中,该脚本带有使用适当S3存储桶(例如,每个项目和AWS账户使用不同的存储桶)的命令行标志,并确保状态文件位置匹配我正在处理的目录的路径。
答案 1 :(得分:1)
我遇到了同样的问题,对附加的init / wrapper脚本的需求感到非常失望。一段时间以前,我开始使用Terragrunt。
值得一看的是Terragrunt,因为它弥补了Terraform与某些时候缺少使用变量之间的差距,例如对于远程后端配置: https://terragrunt.gruntwork.io/docs/getting-started/quick-start/#keep-your-backend-configuration-dry