问题标签 [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.
amazon-web-services - Terragrunt - 更有效地重用模块
我一直在尝试以可以重用事物的方式重组我的 terraform 模块。我在这里试图解决的问题是避免创建新的 tf 模块,其中只有一两个用于特定设置的新属性。
目前的结构:
我也一直在考虑使用terraform-aws-ec2-instance git repo 作为我的 terragrunt 脚本中的源。这样,我根本不需要管理 tf 模块。但我不确定我应该如何编写 terragrunt.hcl 以指向 GitHub 存储库并与某个版本挂钩。
这是推荐的做事方式吗?或者有更清洁的方法吗?
terragrunt.hcl 中的内容 (1)
terragrunt.hcl 中的内容 (2)
尝试了上述设置,但面临缺少后端“s3”块的问题
azure - 输出带有模块的变量的问题
我正在尝试使用模块在 Azure 中创建多个元素。
目录结构看起来像
我运行的第一个计划是创建一个资源组,基本上每个后续计划都需要它的位置。
modules/rg/outputs.tf 包含:
stage/rg/outputs.tf 包含:
rg 中的计划运行良好,并输出
接下来我去构建 vwan,它的 main.tf 看起来像
查找 rg 变量失败
看stage/vwan/terragrunt-debug.tfvars.json
,它只包含 {}
所以,我试图确定为什么 rg 的输出没有作为其他计划的输入。有任何想法吗?
Terraform v0.13.3 terragrunt 版本 v0.25.1
amazon-web-services - 从 Terraform 输入变量中获取 ECS 任务定义环境变量
我正在尝试使用 Terraform 部署 ECS 任务定义。这是我的 ECS 任务定义资源代码:
环境变量在这里是硬编码的。因此,我尝试从 terraform 输入中获取这些环境变量。所以,我修改了:
它给了我这样的问题:
我是 Terraform 的新手。我该如何解决这个问题?
amazon-web-services - 清除 terragrunt 缓存时与 TFC 中的状态(本地执行)失去同步
我有一个我正在研究的 AWS ou/account/infra 部署自动化管道,它使用 terragrunt、terraform 和 terraform 云将账户部署到 AWS 组织。我local
在 TF Cloud 中使用执行,所以此时我在我的机器上本地运行它,并且只有状态存储在 TFC(与 S3 或 GCS 相对)中。Terragrunt 与这种状态存储技术兼容,但我发现如果我apply
的资源(工作得很好)然后清理.terragrunt-cache
( find . -type d -name ".terragrunt-cache" -prune -exec rm -rf {} \;
) 然后plan
或者apply
之前创建的资源,我会失去与远程状态的同步,它想要重新创建所有内容. 当我重新计划时,backend.tf
文件由 Terragrunt重新生成.terragrunt-cache
,我想知道提供者是否正在获取一个新 ID,该 ID 与另一个状态的先前提供者不同步。我要尝试的一种技巧是使用别名。根据 terragrunt 文档,这应该不是问题,因为状态会持续存在并且缓存可能会丢失和重新生成。
关于我的问题可能是什么的任何想法?我是 Terragrunt 的新手,现在正在做一些初步调查。
我的设计基于infrastructure-live
示例(以及自述文件中链接的相应模块)。Terragrunt 在这里共享它:https ://github.com/gruntwork-io/terragrunt-infrastructure-live-example
我terragrunt plan-all -refresh=true
从这个目录结构运行:
account/
我为帐户 (in ) 和根帐户 () 中的基础设施生成一个状态base/
。所有 Terraform 模块都在一个单独的存储库中。
terraform - 如何指示 terragrunt 模块的自定义配置文件?
我正在尝试构建用于将基础架构部署到 Microsoft Azure 云的Terragrunt脚本。事情进展得很好,但我无法弄清楚一件事。
setup 的结构如下所示:
每个模块都使用 Terraform 自动加载 tfvars 功能和config.auto.tfvars.json
. 我想要的是将这些文件放在目录结构之外,并以某种方式指示 Terragrunt 将正确的外部配置文件应用于正确的子模块。
有任何想法吗?
amazon-web-services - Terragrunt - 如何在同一模块中使用输出值
我正在 terragrunt 中部署不同的资源。当我在同一个 terragrunt.hcl 中我需要访问同一个模块中的输出基因时,我遇到了问题。
代码示例:
我需要提取在同一模块中生成的值:
- aws_iam_role.this.arn
- aws_cloudwatch_log_group.this.name
例如,访问其他目录中的输出对于dependency
我在dependency
-中的操作很容易vpc
,因为输出位于其他父文件夹中。但是我从来没有遇到过我建议访问同一模块中生成的输出的情况
amazon-web-services - Terraform 帐户之间的依赖关系
我在使用 AWS SES 服务时遇到了问题。
理想情况下,我想使用 Terraform/Terragrunt 设置整个服务。不幸的是,我似乎无法解决如何去做。
要设置 SES 域,我需要针对我要使用的域进行验证。我要使用的域存在于不同的 AWS 账户中。所以从技术上讲,我需要运行 aws_ses_domain_identity 资源来获取域身份的 id,然后我需要使用 aws_ses_domain_identity 资源给我的 TXT 值在我的另一个 AWS 账户中创建 Route53 记录,最后我需要运行aws_ses_domain_identity_verification 来验证域。
以下是我所指的资源:
如何使用 Terraform 解决这个问题?当模块如此紧密地交织在一起时,我认为将它们分成三个独立的模块是没有意义的。我是否在同一个模块中使用了两个不同的 AWS 提供商(DNS 账户、SES 账户)?
terraform - 如何从 Terratest Go 脚本调用 Terragrunt HCL 文件?
我有一个 terragrunt 脚本,它在运行 terragrunt apply-all 命令行后运行良好,但同样的事情我无法执行/调用表单 Go 脚本。使用TgApplyAll函数
下面是我的 Go 脚本 工作 terragrunt 脚本保存在 D:\vertica-terragrunt-US-286094-Modules\with-infra 位置,并且可以使用手动terragrunt apply-all命令正常工作,但是从 Go 脚本我收到错误
得到如下错误
''' github.com/gruntwork-io/terratest/modules/terraform.TgInvalidBinary.Error(...) c:/go/pkg/mod/github.com/gruntwork-io/terratest@v0.30.15/modules/ terraform/errors.go:12
详细错误 func (err TgInvalidBinary) Error() string { return fmt.Sprintf("terragrunt 必须设置为 TerraformBinary 才能使用此函数。[ TerraformBinary : %s ]", err) } '''
我使用了与从 terratest Go 脚本调用 terraform 代码相同的代码来调用 terragrunt 代码,但它不起作用
任何人都可以帮助我/指导我到某个位置,例如如何从 terratest Go 脚本调用工作 terragrunt 代码?
amazon-web-services - 将现有基础设施从 terraform infra 移动到 terragrunt
我在 terraform 中有我现有的代码,并且我的基础设施已在 aws 中启动并运行。现在我想移到 terragrunt ,但是我可以将我的 terraform 代码移到 terragrunt 吗?类似于 terraform mv 命令我们在 terragrunt 中有什么吗?
terragrunt - Terragrunt 依赖列表输出作为输入
我有两个入口点:s3 和 do_something。s3 是 do_something 的依赖项,具有以下代码:
terragrunt.hcl
主文件
--terragrunt-debug 看起来像:
在 do_something 文件夹中,我有 terragrunt.hcl:
变量.tf
如何获取 build_bucket 的每个元素?
这没有用: