如何最好地处理使用通用.tf文件的多个.tfvars文件?

问题描述 投票:1回答:2

我将通过Terraform管理数十个应用程序的CDN配置。我有一组.tf文件,其中包含所有配置中共有的所有默认常量设置,然后每个应用程序都有自己的.tfvars文件来保存其唯一设置。

如果我运行类似terraform apply --var-file=app1.tfvars --var-file=app2.tfvars --var-file=app3.tfvars的文件,则仅使用最后传入的文件。

即使这样做确实有效,当我将其扩展到更多站点时,也将变得难以管理。

合并多个.tfvars文件以填充一组常见的.tf文件的正确方法是什么?

编辑:我应该补充一点,.tfvar文件定义相同的变量,但具有不同的值。我需要为每个.tf文件声明一次.tfvar文件中定义的资源的状态。

terraform cdn
2个回答
1
投票

最佳方法可能是使用GruntWork的TerraGrunt https://terragrunt.gruntwork.io/,它是Terraform的薄包装,您可以使用HCL配置文件来定义您的要求。

示例terragrunt.hcl配置:


0
投票

我发现处理这种情况的最佳方法(不使用任何第三方工具)是Terraform工作区并为每个.tfvars文件创建一个单独的工作区。这样,我可以使用相同的通用.tf文件,并在使用每个terraform workspace select <workspace name>文件运行terraform apply --var-file=<filename>之前,只需使用.tfvars交换到另一个工作区。

© www.soinside.com 2019 - 2025. All rights reserved.