问题标签 [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.
terragrunt - Terragrunt:读取上游变量
我正在尝试开发我的 AWS 基础设施并具有以下结构:
在该us-east-2_Ohio
级别的 variables.tf 中,我设置了提供者和区域:
当我运行 terragrunt plan-all 时,myVPC 模块提示我provider.aws.region
使用 vpc 模块。我希望从父模块传递它,但无论我尝试什么都行不通。它要么抱怨块类型不是预期的,要么抱怨目标模块没有被应用。我什至在us-east-2_Ohio
只有
那没有用。
任何建议将不胜感激。
谢谢
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,冲突记录
- 域名.com
- 域名.com
但是,我认为我让事情变得更难了。我能够通过反转依赖关系来解决它,以便主域模块依赖于 ses 模块。
terraform - Terragrunt 和公共变量
我正在尝试一些相当简单的事情,但似乎无法理解它。我有以下结构:
我希望在根级别设置一些公共变量,并在 main.tf 中使用它们。我会如何在根 terragrunt 级别声明变量,并让它们在下游可用?
我已经尝试将它们设置为根中的输入,但随后必须在虚拟级别显式声明“变量”才能获取输入。我希望以某种方式在根级别定义这些东西,而不是在虚拟/级别重复变量声明。这是可行的吗?
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 计划时,出现以下错误:
amazon-web-services - Terraform 未部署到多个帐户中
我在将 terraform/terragrunt 部署到多个帐户时遇到问题。我想在我的“主”帐户中管理 DNS 和 KMS,并将其他所有内容部署到我的 dev/uat/prod 环境中。
我已经使用提供商配置了多个 AWS 账户。一个是通过 terragrunt 自动创建的,另一个是在我的 main.tf 文件中创建的。
我已经尝试了许多不同的方法来让它发挥作用。为这两个提供者设置别名,只为一个提供者设置别名,并从等式中完全删除 terragrunt。在每种情况下,terraform 都将应用于我的“主”帐户以获取所有资源。
下面是我的代码示例:
以上是我的 Terragrunt 代码。这是我的模块:
regex - 如何在 Terraform 中仅打印匹配模式字
如果我得到像
我怎样才能只打印()中的单词并输出变成
目前我使用正则表达式,但它似乎不适用于我的模式
我该如何解决这个问题,谢谢您的帮助。
terraform - 无法正确引用地图内列表中的值
我正在尝试从地图中引用列表中的值,但似乎无法让 terraform 识别出它是一个字符串。
下面是我正在处理的模块以及定义的变量。
出于某种原因,当我从列表中调用值时,它给了我以下错误:
这是我正在创建的变量:
这里的目标是根据“transfer_users_and_keys”变量 (tostring(local.sftp_bucket[0])) 中的第二个值构建 home_directory。
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 的错误
terraform - Terragrunt 自动应用
我正在尝试使用自动应用运行 terragrunt,因为我使用了 cli 标志--terragrunt-working-dir
从文档
传入时,不显示交互式用户提示。这会将所有提示的答案默认为“是”</p>
我试过的命令是
但它仍然要求我提示
terragrunt 版本 v0.23.2
ssh - 在 Terragrunt before_hook 中激活 ssh sock5 代理
我正在尝试在应用 RDS Terraform 堆栈之前激活 ssh sock5 代理。
为此,我将 ssh 命令配置为 Terragrunt before_hook 块,示例如下:
如果我在终端中手动执行 ssh 命令,它会按预期工作,ssh 绑定本地端口然后分离,但从 Terragrunt 挂钩执行,代理已启动,但 ssh 命令不分离并且 Terragrunt 进程无法继续并卡在钩子命令上。