问题标签 [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 回答
290 浏览

terraform - Terraform 远程状态使用不正确的文件

我们通过 Terragrunt 使用带有 S3 后端的 Terraform。最近,有人尝试使用 Terraform 工作区,随后删除了工作区,而不是我们的远程状态无法找到任何处于正确状态文件中的输出。

查看调试日志后,我可以看到它似乎指向正确的文件,但它没有拾取任何已部署的基础架构或输出

0 投票
0 回答
293 浏览

terraform - 在应用期间具有 s3 后端更改的 Terragrunt

我正在尝试使用 terragrunt 来管理 AWS 基础设施,我面临的问题是关于不断变化的后端。重现问题的最简单方法是

它抛出以下错误

当我对此说是时,我可以看到在 s3 中创建了一个名为 as 的文件夹,env:并且该.tfstate文件存在于那里,而不是创建的工作区目录。

下面是terraform.tfvars根目录下文件的内容

任何帮助深表感谢。

0 投票
2 回答
3401 浏览

terraform - 无法下载 terraform 模块

我在 terraform/terragrunt 中定义了我的应用程序的基础架构。为了能够在不同的环境中部署完整的应用程序,我为整个应用程序创建了一个模块。但是我不断得到:

无法真正找出问题所在

0 投票
1 回答
56 浏览

terraform - How to access outputs from a "each cloud service is a folder" approach in Terraform

So, I have a terraform folder structure as follows:

The problem I have is that I don't know how to access for example the VPC module self link that I am setting as output, from the GKE module.

Every example I see has like a main.tf on the "staging" level where every module is called in the same file, so that way they can access modules output, but I don't have one (should I with my folder structure approach?)

Would by solution grab the value from remote state? I was trying to access it but it always says it doesn't find the resource:

I try to access like that this output I have in my VPC module (the module is called vpc)

0 投票
2 回答
210 浏览

terraform - 附加在另一个应用程序中创建的安全组

文件夹结构

我正在使用 terragrunt 中的相同模块为 2 个单独的应用程序创建以下内容

  • 实例
  • 安全组

我的问题是如何在 app2 中引用为 app1 创建的安全组?

例如。

在 app1 中,我可以将其引用为 security_groups = ["${aws_security_group.sec_group_A.id}"] 我如何在 app2 中引用相同的安全组?

0 投票
0 回答
96 浏览

terraform - Terragrunt:提供程序“tfstate”不可安装

当尝试使用 terragrunt 为 AWS Beanstalk 环境中的应用程序预置资源时,它会提供:

terragrunt 版本 v0.18.7 Terraform v0.11.14

0 投票
0 回答
358 浏览

terraform - 具有平台间共享基础设施的 terragrunt

目录结构

我使用 s3 作为远程状态后端和用于锁定的 dynamodb 表

platform1 和 platform2 都使用来自共享平台的共享基础架构

如果我首先尝试创建平台 1,它将失败,因为尚未创建共享中的依赖项,平台 2 也是如此,但如果我先创建共享平台,然后创建平台 1 和平台 2,所有基础设施都将毫无问题地构建

这个对吗?尝试构建其中一个平台环境时,如何首先构建共享环境?

我尝试过先创建共享环境

根 terragrunt.hcl 文件,即 tst1 文件夹下

平台1内的terragrunt.hcl

0 投票
1 回答
1453 浏览

amazon-ec2 - aws_security_group - 条件入口

我正在测试 terraform/terragrunt 以将 RDS DB 部署到 AWS。

有没有办法向 aws_security_group 定义添加条件入口?

Terraform v0.12.3 terragrunt 版本 v0.19.8

现在我能做的最好的事情是为每个条件添加一个安全组,每个条件都有一个计数语句,然后将所有单个安全组添加到数据库实例中,比如

当数据库资源中引用安全组时,这实际上不起作用并且失败。

0 投票
2 回答
378 浏览

groovy - 无法在詹金斯管道作业中重定向 terragrunt 输出

我有一个运行 terragrunt 代码的 jenkins 多分支管道,为了清理输出日志,我想将 terragrunt destroy 输出重定向到 txt 文件并将其存档。

本地一切都按预期工作,但在詹金斯上,txt文件是空的

我尝试过:

最后一个是根据同事的建议,它可能与颜色输出有关。

工作范围:

不知道还能尝试什么,我查看的所有其他方法似乎也仍然输出到控制台,这违背了清理控制台输出以提高可读性的目标。

0 投票
3 回答
14052 浏览

google-cloud-platform - 带有 Terraform 的 Google Cloud 凭据

这是一个新手问题,但我刚刚开始使用 Terraform / Terragrunt 进行 GCP 配置,我发现获取 GCP 凭据的工作流程非常混乱。我是专门使用 AWS 的,在 AWS CLI 中获取凭证和配置它们非常简单。

基本上,Google Cloud Provider 文档声明您应该provider像这样定义一个块:

credentials字段显示我(显然)必须生成一个服务帐户,并将 JSON 保存在我的文件系统的某个位置。

但是,如果我运行命令gcloud auth application-default login,这会生成一个位于~/.config/gcloud/application_default_credentials.json; 或者我也可以使用gcloud auth login <my-username>. 从那里我可以使用命令从命令行访问 Google API(这也是 Terraform 在幕后所做的)gcloud

那么为什么 Terraform 提供者需要服务帐户的 JSON 文件呢?为什么它不能只使用gcloudCLI 工具已经在使用的凭据?

顺便说一句,如果我将 Terraform 配置为指向该application_default_credentials.json文件,则会收到以下错误:

正在初始化模块...

正在初始化后端...

错误:无法获取现有工作区:查询云存储失败:获取 https://www.googleapis.com/storage/v1/b/terraform-state-bucket/o?alt=json&delimiter=%2F&pageToken=&prefix=projects%2Fsomeproject %2F&prettyPrint=false&projection=full&versions=false : 私钥应该是 PEM 或普通 PKCS1 或 PKCS8;解析错误:asn1:语法错误:序列被截断