terraform - 在 GitHub Actions/Terraform CLI 中切换 Terraform 云工作区
问题描述
我们正在进行一个小型概念验证项目,该项目将使用 Terraform 将基础架构部署到 Azure。我们的 Terraform 源代码保存在 GitHub 中,我们使用 Terraform 云作为后端来存储我们的状态、秘密等。
在 Terraform 云中,我们创建了两个工作区,一个用于staging
环境,一个用于production
环境。
到目前为止,我们已经使用Terraform 文档中的指南开发了一个 GitHub 操作,该操作在推送到main
分支时触发并将我们的基础架构部署到staging
环境中。这一切都很好,我们可以看到我们的状态保存在 Terraform 云中。
下一个障碍是促进我们对production
环境的改变。
不幸的是,我们在试图弄清楚如何在 GitHub 操作中动态更改 Terraform 云工作区以使其在production
而不是staging
. 我花了一天的大部分时间来研究这个问题。
作为参考,Terraform 后端当前配置如下:
terraform {
backend "remote" {
organization = "terraform-organisation-name"
workspaces {
name = "staging-workspace-name"
}
}
}
动作本身执行 an init
and then and apply
。
显然,使用硬编码的工作区名称,这只适用于staging
. 最终问题归结为如何从命令行参数化或动态更改 Terraform 云工作空间?
我觉得我缺少一些基本的东西,任何帮助或建议将不胜感激。
解决方案
推荐阅读
- c# - 添加带和不带前缀的“xmlns”命名空间
- hadoop - 在现有 Hadoop 集群的数据节点上安装 NiFi(开源)
- r - How to convert coordinates in decimal degree to UTM format in R?
- java - How to handle alias in TrustStore
- dependency-injection - 自定义服务中Logger的依赖注入
- redirect - 如何使用 web.config 将站点重定向到站点?
- javascript - 访问元素及其属性
- api - How to get LinkedIn API OAuth token
- date - 我需要帮助理解这种日期格式
- racket - Function that returns #t if expr is a valid boolean expression in racket