问题标签 [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.
terraform - Terraform 远程状态使用不正确的文件
我们通过 Terragrunt 使用带有 S3 后端的 Terraform。最近,有人尝试使用 Terraform 工作区,随后删除了工作区,而不是我们的远程状态无法找到任何处于正确状态文件中的输出。
查看调试日志后,我可以看到它似乎指向正确的文件,但它没有拾取任何已部署的基础架构或输出
terraform - 在应用期间具有 s3 后端更改的 Terragrunt
我正在尝试使用 terragrunt 来管理 AWS 基础设施,我面临的问题是关于不断变化的后端。重现问题的最简单方法是
它抛出以下错误
当我对此说是时,我可以看到在 s3 中创建了一个名为 as 的文件夹,env:
并且该.tfstate
文件存在于那里,而不是创建的工作区目录。
下面是terraform.tfvars
根目录下文件的内容
任何帮助深表感谢。
terraform - 无法下载 terraform 模块
我在 terraform/terragrunt 中定义了我的应用程序的基础架构。为了能够在不同的环境中部署完整的应用程序,我为整个应用程序创建了一个模块。但是我不断得到:
无法真正找出问题所在
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)
terraform - 附加在另一个应用程序中创建的安全组
我正在使用 terragrunt 中的相同模块为 2 个单独的应用程序创建以下内容
- 磅
- 实例
- 安全组
我的问题是如何在 app2 中引用为 app1 创建的安全组?
例如。
在 app1 中,我可以将其引用为 security_groups = ["${aws_security_group.sec_group_A.id}"] 我如何在 app2 中引用相同的安全组?
terraform - Terragrunt:提供程序“tfstate”不可安装
当尝试使用 terragrunt 为 AWS Beanstalk 环境中的应用程序预置资源时,它会提供:
terragrunt 版本 v0.18.7 Terraform v0.11.14
terraform - 具有平台间共享基础设施的 terragrunt
我使用 s3 作为远程状态后端和用于锁定的 dynamodb 表
platform1 和 platform2 都使用来自共享平台的共享基础架构
如果我首先尝试创建平台 1,它将失败,因为尚未创建共享中的依赖项,平台 2 也是如此,但如果我先创建共享平台,然后创建平台 1 和平台 2,所有基础设施都将毫无问题地构建
这个对吗?尝试构建其中一个平台环境时,如何首先构建共享环境?
我尝试过先创建共享环境
根 terragrunt.hcl 文件,即 tst1 文件夹下
平台1内的terragrunt.hcl
amazon-ec2 - aws_security_group - 条件入口
我正在测试 terraform/terragrunt 以将 RDS DB 部署到 AWS。
有没有办法向 aws_security_group 定义添加条件入口?
Terraform v0.12.3 terragrunt 版本 v0.19.8
现在我能做的最好的事情是为每个条件添加一个安全组,每个条件都有一个计数语句,然后将所有单个安全组添加到数据库实例中,比如
当数据库资源中引用安全组时,这实际上不起作用并且失败。
groovy - 无法在詹金斯管道作业中重定向 terragrunt 输出
我有一个运行 terragrunt 代码的 jenkins 多分支管道,为了清理输出日志,我想将 terragrunt destroy 输出重定向到 txt 文件并将其存档。
本地一切都按预期工作,但在詹金斯上,txt文件是空的
我尝试过:
最后一个是根据同事的建议,它可能与颜色输出有关。
工作范围:
不知道还能尝试什么,我查看的所有其他方法似乎也仍然输出到控制台,这违背了清理控制台输出以提高可读性的目标。
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 文件呢?为什么它不能只使用gcloud
CLI 工具已经在使用的凭据?
顺便说一句,如果我将 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:语法错误:序列被截断