首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何指示terragrunt模块的自定义配置文件?

如何指示terragrunt模块的自定义配置文件?
EN

Stack Overflow用户
提问于 2020-10-21 13:20:50
回答 1查看 232关注 0票数 1

我正在尝试构建Terragrunt脚本,以便将基础设施部署到Microsoft云。事情进展得相当顺利,但我想不出一件事。

设置的结构如下所示:

代码语言:javascript
运行
复制
rootdir
  terragrunt.hcl
  someconfig.hcl
    module1dir
      terragrunt.hcl
      config.auto.tfvars.json
    module2dir   
      terragrunt.hcl
      config.auto.tfvars.json
    module3dir   
      terragrunt.hcl
      config.auto.tfvars.json

每个模块都使用带有config.auto.tfvars.json的特性进行配置。我想要的是在目录结构之外拥有这些文件,并以某种方式指示Terragrunt应用正确的外部配置文件来更正子模块。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-22 15:43:13

我以以下方式解决了这一问题:

定义您计划使用的环境变量,其中应该包含配置文件的位置。确保它没有与任何现存的东西发生冲突。在本例中,我们将使用TGR_CFGDIR。在外部配置模块中,放置模块配置文件并确保它们正确命名。每个文件都应该命名为模块,并以.auto.tfvars.json结尾。因此,如果您的模块名为foo,则应该有配置文件foo.auto.tfvars.json。将terragrunt模块(terragrunt.hcl)更改为具有以下语句:

代码语言:javascript
运行
复制
locals {
  moduleconfig = get_env("TGR_CFGDIR")
  modulename   = basename(get_terragrunt_dir())
}

generate "configuration" {
  path              = "config.auto.tfvars.json"
  if_exists         = "overwrite"
  disable_signature = true
  contents          = file("${local.moduleconfig}/${local.modulename}.auto.tfvars.json")
}

最后像这样叫terragrunt cli:

代码语言:javascript
运行
复制
TGR_CFGDIR="<configdir>" terragrunt "<somecommand>"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64464449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档