首页 > 解决方案 > 如何维护数百个不同的 Terraform 配置?

问题描述

我们创建了一个 Terraform 模板,我们将在未来在不同的工作空间中部署数十次。每个工作区都有一个单独的配置文件。

现在我们想自动化这个过程,并考虑将配置文件保存在 Git Repo 中。

有没有人最佳实践如何将配置文件存储在 Git Repo 中并触发 CICD 工作流(Azure DevOps)?

一般来说,我们只想对配置更改的工作区应用更改。

标签: azure-devopsterraformterraform-provider-azure

解决方案


terraform plan 和 apply 命令有一个选项供您传入要使用的 tfvars 文件。所以是这样的:

terraform apply --var-file=workspace.tfvars

因此,在管道中,您将获取您的 terrafom 模板工件和配置文件。然后我会设置一个 TF_WORKSPACE 变量来强制你的工作空间,我也会让你的 tfvars 文件与工作空间名称匹配,这样你就可以在你的应用命令中重新使用这个变量。这将强制您的工作区和配置文件匹配。

要在这些文件发生更改时触发此操作,需要一个路径触发器来触发这些更改。

无论是否发生更改,我都认为每次运行 Terraform 都没有任何害处。更糟糕的可能结果是有人做出了不在 Terraform 中的更改并且它被撤消了。


推荐阅读