如何维护数百个不同的 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 中的更改,并且更改被撤消了。
我们创建了一个 Terraform 模板,我们将在未来将其部署在不同的工作区中数十次。每个工作区都有一个单独的配置文件。
现在我们想自动执行此过程并考虑将配置文件保存在 Git 存储库中。
有没有人知道如何在 Git 存储库中存储配置文件并触发 CICD 工作流 (Azure DevOps)?
一般来说,我们只想对配置已更改的工作区应用更改。
terraform plan 和 apply 命令有一个选项供您传入要使用的 tfvars 文件。所以像这样:
terraform apply --var-file=workspace.tfvars
所以在管道中,您将获取您的 terrafom 模板工件和您的配置文件。然后我会设置一个 TF_WORKSPACE 变量来强制你的工作区,我也会让你的 tfvars 文件与工作区名称匹配,这样你就可以在你的应用命令中重新使用这个变量。这将强制您的工作区和配置文件匹配。
要在这些文件发生更改时触发此操作,需要一个 path trigger 来触发这些更改。
无论是否发生变化,我每次都没有发现 运行 Terraform 有任何危害。更糟糕的结果可能是有人进行了不在 Terraform 中的更改,并且更改被撤消了。