azure-devops - 如何维护数百个不同的 Terraform 配置?
问题描述
我们创建了一个 Terraform 模板,我们将在未来在不同的工作空间中部署数十次。每个工作区都有一个单独的配置文件。
现在我们想自动化这个过程,并考虑将配置文件保存在 Git Repo 中。
有没有人最佳实践如何将配置文件存储在 Git Repo 中并触发 CICD 工作流(Azure DevOps)?
一般来说,我们只想对配置更改的工作区应用更改。
解决方案
terraform plan 和 apply 命令有一个选项供您传入要使用的 tfvars 文件。所以是这样的:
terraform apply --var-file=workspace.tfvars
因此,在管道中,您将获取您的 terrafom 模板工件和配置文件。然后我会设置一个 TF_WORKSPACE 变量来强制你的工作空间,我也会让你的 tfvars 文件与工作空间名称匹配,这样你就可以在你的应用命令中重新使用这个变量。这将强制您的工作区和配置文件匹配。
要在这些文件发生更改时触发此操作,需要一个路径触发器来触发这些更改。
无论是否发生更改,我都认为每次运行 Terraform 都没有任何害处。更糟糕的可能结果是有人做出了不在 Terraform 中的更改并且它被撤消了。
推荐阅读
- java - 在另一个 Spring Entity 中使用 Spring Entity
- excel - 我可以简化 Airtable 公式的 if 语句吗?
- android - 如果我使用低于 Oreo 目标 sdk,那么我的应用程序将没有 Oreo 背景限制?
- python-3.x - 通过递归方式反向双向链表不在python中迭代
- excel - 使用变体直接值传输保留数据类型
- redis - 无法访问 Redis(已启用集群模式)集群的端点
- r - 两种不同的多元 GLM 泊松模型回归、均值点和置信区间
- javascript - 为什么会继续打印 9
- ionic-framework - 如何在 Ionic 4 中使用 TINT 文本颜色
- javascript - Wicket - 附加 Javascript(什么是更好的做法?)