在Terraform远程后端中使用变量

在Terraform远程后端中使用变量,terraform,terraform-provider-azure,terraform-remote-state,Terraform,Terraform Provider Azure,Terraform Remote State,对于Terraform远程后端,是否有一种方法可以使用变量来指定组织/工作区名称,而不是硬编码的值 似乎也没有提到任何相关的事情 本文将对此进行详细介绍。需要注意的要点是: 只能指定一个后端,并且配置不能包含插值。Terraform将验证这一点 如果您想使其易于配置,那么可以将其用于静态部分(例如,S3之类的后端类型),然后在运行时通过环境变量或命令行标志以交互方式提供配置 我个人将Terraform操作包装在一个小型shell脚本中,该脚本运行Terraform init,命令行标志使用适当

对于Terraform远程后端,是否有一种方法可以使用变量来指定组织/工作区名称,而不是硬编码的值

似乎也没有提到任何相关的事情

本文将对此进行详细介绍。需要注意的要点是:

只能指定一个后端,并且配置不能包含插值。Terraform将验证这一点

如果您想使其易于配置,那么可以将其用于静态部分(例如,S3之类的后端类型),然后在运行时通过环境变量或命令行标志以交互方式提供配置


我个人将Terraform操作包装在一个小型shell脚本中,该脚本运行
Terraform init
,命令行标志使用适当的S3 bucket(例如每个项目和AWS帐户使用不同的一个)并确保状态文件位置与我正在处理的目录的路径匹配。

我也有同样的问题,并且对需要额外的init/wrapper脚本感到非常失望。不久前我开始使用Terragrunt

值得一看Terragrunt,因为它缩小了Terraform和在某些点上不使用变量之间的差距,例如,对于远程后端配置:

# Using a single workspace:
terraform {
  backend "remote" {
    hostname = "app.terraform.io"
    organization = "company"

    workspaces {
      name = "my-app-prod"
    }
  }
}