【问题标题】:Terraform, how to call 100 times module with seperate valuesTerraform,如何使用单独的值调用 100 次模块
【发布时间】:2025-12-14 13:10:01
【问题描述】:

我遇到了 terraform 配置问题,我真的不知道如何解决。我已经为策略分配编写了模块,模块作为参数采用具有 5 个属性的对象。问题是是否可以拆分为文件夹结构的 tfvars 文件。我的意思是例如。 我有主文件夹订阅 -> folder_subscription_name -> 一些文件 tfvars,每个策略分配都有配置

每个文件的示例
测试图 = { var1 = "test1"
var2 = "test2"
var3 = "test3"
var4 = "test4"
var5 = "test5"
}
在模块中,我想遍历所有的地图组合成地图列表。这是好方法吗?如何实现这一目标,或者我应该使用其他东西来做到这一点,比如 terragrunt ? 请给我一些提示,什么是实现这一目标的最佳方法,基本上我的目标是我不想拥有一个包含 100 个地图列表的非常大的 tvars 文件,但每个任务都拆分为 100 个配置文件。

【问题讨论】:

  • 嗨!老实说,我认为我们所有人都很难理解你的意思。你能用更简洁的方式描述你想要实现的目标吗?
  • 问题很简单,如何将每个资源的输入变量保存在单独的文件中,而不是将它们全部保存在一个非常大的文件中

标签: automation terraform devops infrastructure-as-code


【解决方案1】:

基于对原始问题的评论:

问题很简单,如何为每个变量保留输入变量 资源在单独的文件中,而不是将它们全部保存在一个文件中 大文件

我会说你的目标是拥有不同的.tfvars 文件。例如,您可以有一个dev.tfvars 和一个prod.tfvars 文件。

要规划您的部署,您可以通过以下方式传递这些文件:

terraform plan --var-file=dev.tfvars -out planoutput

应用这些更改

terraform apply planoutput

【讨论】: