问题标签 [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.
google-cloud-platform - Terragrunt 将地图转换为字符串
在我的terragrunt.hcl
文件中,我将几个变量传递给一个模块 - 其中一个是 map 和 list
但是当我将它传递给一个模块时
它不理解它并将其视为一个字符串
有人对可能是什么问题有任何想法吗?
git - 来自特定分支的 Terragrunt 下载模块
我最近开始使用 terragrunt 并且一直想知道是否可以从特定分支而不是特定标签(或除了标签)而不是默认的 master 下载模块
从 master 下载特定标签:
从 repo 下载特定的分支?
linux - 轻松交换 terraform 版本的工具
我找到了工具tfenv
,并tfswitch
轻松快速地更改了 terraform 和 terragrunt 版本 - 我猜这些工具可以工作,因为人们使用它,但由于某种原因,他们不会在我运行后更改我计算机上的版本让我们说
看来我正确切换到 version 0.12.25
,但是在用 terraform 检查后它没有改变
工具也是如此tfenv
,有人遇到过这个问题吗?我也尝试使用 sudo 运行它,但没有成功 - 我看到二进制文件正在下载到这些工具的配置目录,我什至将它们添加到 PATH,但它们不会覆盖主文件terraform
或terragrunt
二进制文件,这就是我离开的原因对于旧版本,有什么想法吗?
terraform - Terragrunt 输出到环境变量 GitLab CI/CD
我正在尝试运行“Terragrunt plan -out=$PLAN”,但似乎我做不到?我的目标是输出一个计划,然后显示该计划并发布到 GitLab 合并请求。
我应该如何去完成这个?
这是我到目前为止所拥有的:
terraform - 如何在 terraform 代码中访问 terragrunt 变量
我有 terragrunt 配置,其中已在根级别使用本地变量声明变量,如下所示。在子模块中,声明了名为 (terragrunt.hcl) 的子 terragrunt 配置文件。父 terragrunt 文件具有以下代码:
子模块 terragrunt 文件具有以下代码:
现在,尝试使用以下代码访问location
terraform 代码 () 中的变量:main.tf
但它会引发错误:
不知道如何访问 terraform 代码中 terragrunt 文件中定义的变量。请建议
amazon-web-services - 如何在 common.tfvars 中注入环境变量
如何在 common.tfvars 文件中注入环境变量
前任
并在 common.tfvars 中使用它
预先感谢您的帮助
terraform - Terragrunt DRY 配置优于“本机”Terraform 的优势?
我刚刚了解了 Terragrunt。虽然我看到了 Terraform 中缺少的一些好东西,但我并不完全理解 DRY 配置方面的真正好处(这似乎是 Terragrunt 最受推崇的方面)。
在我见过的所有这些示例中,HCL 文件(例如,用于各个阶段的文件)对我来说看起来相当多余——而且基本上包含的信息与module {}
在普通 Terraform 中的块中传递的信息相同。
难道你不能通过在普通的 Terraform 中编写一个只实例化其他模块的“组合模块”,用大致相同数量的代码来实现同样的事情吗?我错过了什么吗?
amazon-web-services - 强制 Terraform 在 AWS Elasticache Redis 集群上应用挂起的更改
我正在尝试使用 Terraform将 Elasticache 的节点类型从老一代(cache.t2. )更改为新一代(cache.t3. )。
能够通过 成功修改所有 Memcached 实例的节点类型terraform apply
,但不幸的是,当我尝试使用terraform apply
命令更改 Redis 的节点类型时,该命令在大约 30 秒内完成并且没有应用任何更改。
要应用节点类型更改,我必须登录到 Web 控制台并单击单个 Redis 实例并单击修改并应用待处理的更改并等待它完成。这对我来说是手动工作,我必须为 100 个 Redis 实例执行此操作。
是否可以强制 terraform 在 Elasticache 上应用 Redis 的待定更改?
terragrunt - Terragrunt plan-all auto-init 似乎不起作用
我遇到了一个问题,运行terragrunt plan-all
要求我首先运行“terragrunt init”.. 阅读https://terragrunt.gruntwork.io/docs/features/auto-init/#auto-init .. 它说它应该“自动初始化”,但这似乎没有发生..我使用的是 v0.23.31 ..我读错了自动初始化功能吗?
amazon-web-services - Terragrunt 路径解析 - 本地引用的模块 - 拆分为多个环境
出于与业务相关的原因,我无法使用版本化模块拆分我的基础架构。由于拆分环境仍然有益,并且我想避免复制/粘贴根模块,它们基本上只是子模块的实例化,在多个目录中,每个目录代表自己的环境,我想指定的来源terragrunt.hcl中的根模块
为了让生活更轻松,我构建了当前基础架构的一小部分,只需一个模块即可加快开发速度。
该项目的当前结构如下所示:
我所有的基础设施都在infrastructure-modules/ecs/*.tf
文件中描述,这些文件基本上只是实例化在terraform-modules/terraform-aws-*/
.
infrastructure-modules/ecs
有了它,我可以简单地从目录中执行 terragrunt(terraform 命令) 。
为了有可能在另一个帐户中创建相同的环境,我引入了一个新目录environments/dev/eu-central-1/ecs
,如根目录的树输出所示。
,environments/dev/eu-central-1/ecs
仅包含两个文件,terragrunt.hcl和common.tfvars。
我想,common.tfvars的用法是不言自明的,我的terragrunt.hcl由remote_state {}
和terraform {}
块组成。
terragrunt 配置文件的重要部分:
上面我基本上是在引用我的根模块,在infrastructure-modules/ecs/*.tf
. 我的根模块正在实例化在terraform-modules/terraform-aws-*/
.
子模块infrastructure-modules/ecs/*.tf
的实例化如下:
在理想的世界中,我将能够从environments/dev/eu-central-1/ecs
目录执行 terragrunt (terraform) 命令,但是由于我使用的是本地(相对)路径,因此在模块初始化期间这会失败,因为根模块my_module会加载子模块以下相对路径:
这导致模块实例化environments/dev/eu-central-1/ecs
失败,因为相对路径不同,基于父模块实例化。
到目前为止,根据文档,path_relative_*
应该能够返回其包含块中指定的路径与当前 terragrunt.hcl 之间的相对路径,但这里的问题是我的文件中没有任何include {}
块terragrunt.hcl
因此这种方法不起作用。符号链接是最后的选择。
编辑
如果我检查.terragrunt-cache/*
on 路径environments/dev/eu-central-1/ecs
,我可以确认所有“根”模块都已下载(复制)到缓存目录中。
但是,模块是这样实例化的,它会尝试从上面两级的目录中获取实际的模块(Terraform 模块)。
所以基本上,我需要告诉 Terragrunt 从其他路径下载/获取模块。
编辑2:
检查我正在运行的目录中的 .terragrunt-cacheinit
显示,terraform-modules
从未在
terraform-infrastructure/environments/dev/eu-central-1/ecs/.terragrunt-cache/
.
如果我改变我的terraform-infrastructure/infrastructure-modules/ecs/ecr-repos.tf
, 从
至:
Terraform 能够初始化子模块,因为我terraform-modules/
在根目录中给出了相对路径,这显然是一种解决方法。
不知何故,我期待 Terragrunt 下载这两个目录,terraform-modules
并infrastructure-modules
让模块实例化中的相对路径起作用。