如何维护数百个不同的 Terraform 配置?

How to maintain hundred different Terraform configs?

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

现在我们想自动执行此过程并考虑将配置文件保存在 Git 存储库中。

有没有人知道如何在 Git 存储库中存储配置文件并触发 CICD 工作流 (Azure DevOps)?

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

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

terraform apply --var-file=workspace.tfvars

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

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

无论是否发生变化,我每次都没有发现 运行 Terraform 有任何危害。更糟糕的结果可能是有人进行了不在 Terraform 中的更改,并且更改被撤消了。