我正在使用 GitHub Actions 和 Terraform 构建 CI/CD 管道。我有一个如下所示的 main.tf 文件,我从多个环境的 GitHub 操作中调用该文件。我正在使用https://github.com/hashicorp/setup-terraform与 GitHub 操作中的 Terraform 进行交互。我有 MyService 组件,并且正在部署到 DEV、UAT 和 PROD 环境。我想在所有环境中重用 main.tf 并动态设置工作区名称,如下所示:MyService-DEV、MyService-UAT、MyService-PROD。terraform/cloud 块中不允许使用变量。我正在使用 HashiCorp 云来存储状态。
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 2.0"
}
}
cloud {
organization = "tf-organization"
workspaces {
name = "MyService-${env.envname}" #<==not allowed to use variables
}
}
}
Run Code Online (Sandbox Code Playgroud)
更新
我终于成功地启动并运行了这个程序并提供了有用的评论。以下是我的发现: