问题标签 [terragrunt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
168 浏览

terragrunt - Terragrunt:读取上游变量

我正在尝试开发我的 AWS 基础设施并具有以下结构:

在该us-east-2_Ohio级别的 variables.tf 中,我设置了提供者和区域:

当我运行 terragrunt plan-all 时,myVPC 模块提示我provider.aws.region使用 vpc 模块。我希望从父模块传递它,但无论我尝试什么都行不通。它要么抱怨块类型不是预期的,要么抱怨目标模块没有被应用。我什至在us-east-2_Ohio只有

那没有用。

任何建议将不胜感激。

谢谢

0 投票
0 回答
61 浏览

terraform - 在 terragrunt 配置之间共享 aws_route53_record?

所以,我有一个域本身的 terragrunt 配置,它包含一个静态域验证记录条目。

现在,我想从第二个配置中向该记录添加第二个“记录”,该配置在 terragrunt 树中完全自动化第二个过程。

到目前为止,我的想法是创建第三个模块,这取决于其他两个。有更好的想法吗?

编辑:到目前为止的结构:

  • 全球的
    • 域名.com
      • aws_route53_zone - domain.com ``
      • aws_route53_record - _amazonses.domain.com,冲突记录
    • 赛斯
      • 域名.com
        • aws_route53_record - _amazonses.domain.com,冲突记录

但是,我认为我让事情变得更难了。我能够通过反转依赖关系来解决它,以便主域模块依赖于 ses 模块。

0 投票
3 回答
2549 浏览

terraform - Terragrunt 和公共变量

我正在尝试一些相当简单的事情,但似乎无法理解它。我有以下结构:

我希望在根级别设置一些公共变量,并在 main.tf 中使用它们。我会如何在根 terragrunt 级别声明变量,并让它们在下游可用?

我已经尝试将它们设置为根中的输入,但随后必须在虚拟级别显式声明“变量”才能获取输入。我希望以某种方式在根级别定义这些东西,而不是在虚拟/级别重复变量声明。这是可行的吗?

0 投票
2 回答
7178 浏览

terraform-provider-azure - Terraform:Azure 中的“错误:从 terragrunt 调用模块时引用未声明的资源”

我第一次尝试使用 terragrunt。我遵循了参考https://terratest.gruntwork.io/docs/getting-started/quick-start/的目录结构。我想保留在我的环境文件夹中使用的重复 main.tf、outputs.tf 和 vars.tf 的 gid。以下是我面临的版本和错误。任何帮助将不胜感激。提前致谢。

Terragrunt 版本

地形版本

目录结构

terraform-live/terragrunt.hcl 的内容

}

terraform-live/prod/resource_group/main.tf 的内容

terraform-live/prod/resource_group/terragrunt.hcl 的内容

当我运行 terragrunt 计划时,出现以下错误:

0 投票
1 回答
1054 浏览

amazon-web-services - Terraform 未部署到多个帐户中

我在将 terraform/terragrunt 部署到多个帐户时遇到问题。我想在我的“主”帐户中管理 DNS 和 KMS,并将其他所有内容部署到我的 dev/uat/prod 环境中。

我已经使用提供商配置了多个 AWS 账户。一个是通过 terragrunt 自动创建的,另一个是在我的 main.tf 文件中创建的。

我已经尝试了许多不同的方法来让它发挥作用。为这两个提供者设置别名,只为一个提供者设置别名,并从等式中完全删除 terragrunt。在每种情况下,terraform 都将应用于我的“主”帐户以获取所有资源。

下面是我的代码示例:

以上是我的 Terragrunt 代码。这是我的模块:

0 投票
1 回答
772 浏览

regex - 如何在 Terraform 中仅打印匹配模式字

如果我得到像

我怎样才能只打印()中的单词并输出变成

目前我使用正则表达式,但它似乎不适用于我的模式

我该如何解决这个问题,谢谢您的帮助。

0 投票
1 回答
146 浏览

terraform - 无法正确引用地图内列表中的值

我正在尝试从地图中引用列表中的值,但似乎无法让 terraform 识别出它是一个字符串。

下面是我正在处理的模块以及定义的变量。

出于某种原因,当我从列表中调用值时,它给了我以下错误:

这是我正在创建的变量:

这里的目标是根据“transfer_users_and_keys”变量 (tostring(local.sftp_bucket[0])) 中的第二个值构建 home_directory。

0 投票
1 回答
220 浏览

ansible - 由于 github 身份验证,Ansible 播放失败

我正在terragrunt使用 ansibleshell模块通过 ansible play 运行脚本。

Ansible 任务

在这里,我给出了command一个论点,它看起来像

terragrunt plan --terragrunt-working-dir /workspace/terraform/vpc

在我的 terragrunt 脚本中,一些 terraform 模块是从私有的 Github 存储库引用的,它应该作为命令执行的一部分下载。

但是当我运行 ansible 角色时,我从 git 收到身份验证错误,但主机中的 repo 克隆工作正常(没有身份验证问题)。

我有来自 ansible play 的 git 身份验证问题,而不是来自主机(现在我的主机是 localhost)

来自 TERRAGRUNT 的错误

0 投票
2 回答
2286 浏览

terraform - Terragrunt 自动应用

我正在尝试使用自动应用运行 terragrunt,因为我使用了 cli 标志--terragrunt-working-dir

从文档

传入时,不显示交互式用户提示。这会将所有提示的答案默认为“是”</p>

我试过的命令是

但它仍然要求我提示

terragrunt 版本 v0.23.2

0 投票
1 回答
127 浏览

ssh - 在 Terragrunt before_hook 中激活 ssh sock5 代理

我正在尝试在应用 RDS Terraform 堆栈之前激活 ssh sock5 代理。

为此,我将 ssh 命令配置为 Terragrunt before_hook 块,示例如下:

如果我在终端中手动执行 ssh 命令,它会按预期工作,ssh 绑定本地端口然后分离,但从 Terragrunt 挂钩执行,代理已启动,但 ssh 命令不分离并且 Terragrunt 进程无法继续并卡在钩子命令上。