问题标签 [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 中的数字
我现在面临的问题是这样的。我正在努力使我的政策更加灵活。所以我将它们转移到一个文件中,而不是使用 EOF。
如何使模板文件识别数字值?
"${max_untagged_images}"
并且"${max_tagged_images}"
假设是数字。
AWS 生命周期策略:
数据模板:
政策:
google-cloud-platform - 多环境 terragrunt gcp 项目的模板?
我想开始一个新的 Terraform 项目,该项目将在 GCP 帐户上部署资源。我想使用 Terragrunt 来配置多个环境(测试、开发、产品)。
基本上每个环境都是相同的,只是资源的名称有一个前缀(环境名称)并且资源将在另一个区域中。我也想用 terragrunt 让它保持干燥。
到目前为止,我只有这个所需的文件夹结构:
我对 Terragrunt 感到困惑,而 Terraform 是压倒性的。我对此几乎没有经验,我主要了解 AWS 上的 CloudFormation。
那么我应该把 terragrunt.hcl 文件放在哪里,里面应该有什么?我在哪里存储资源变量以及如何强制资源使用环境变量(区域和前缀)。我应该使用什么命令来部署特定环境?
google-cloud-platform - 如何引用 Terragrunt 中的其他资源和输出?
我正在按照本教程在 GCP 中使用 Terragrunt 进行多环境部署:https ://harjot.me/blog/deploying-docker-containers-to-gke-using-terraform/
如您所见,他没有完成 gcp-sql moudule 示例,现在我不知道如何使用此模板引用位于不同文件夹中的其他资源或输出。例如 :
中的一个模块terraform>module>gcp-sql>main.tf
需要一个值, terraform>module>gcp-gke>main.tf
例如module.gcp_services.project_id
或者
它需要一个值, terraform>module>gcp-gke>outputs.tf
例如module.gke.cluster_endpoint
(我什至不确定这是引用输出的正确方法,我真的需要指定模块名称“gke”吗?)
所以简而言之,如果一个模块使用来自另一个模块的值但两个模块都在同一个 main.tf 例如erraform>module>gcp-gke>main.tf
文件中,则使用教程中的这个模板,那么是的,我可以使用module.gcp_services.project_id
,但如果第二个模块在一个不同的 main.tf 文件。如果是,它如何知道另一个模块?再说一次,我如何使用输出?
terraform - 如何使 Terraspace 堆栈在一些环境中通用?
请告诉我是否有任何方法可以使某些 Terraspace 堆栈在某些环境中通用?例如,我有一个适用于所有非生产环境的 AWS 账户,并且我想对所有环境使用相同的 VPC,所有其他资源(例如 EC2、RDS、SQS 等)将因每个环境而异且特定. 那么有没有办法将公共 VPC 堆栈的状态(首先是输出)共享给其他环境(开发、阶段、测试等)以及如何防止将 VPC 堆栈分别应用于terraspace build <environment>
舞台上的每个环境?
amazon-web-services - Terragrunt for_each 值,无法检索其他资源中的数据
我的 terragrunt/terraform 代码有如下问题。我不知道检索for_each
循环创建的两个爬虫的正确方法。
通常我用 for 和 创建它count
。我无法在我的操作触发器 (main.tf) 中检索正确的值。
terragrunt 文件(输入):
主文件
变量.tf
当我运行此代码时,出现以下错误:
terraform - terragrunt 无法访问模块输出
我正在与 Terragrunt 苦苦挣扎(我还是个新手)。即使使用纯 Terragrunt 存储库示例,我也可以描述我的问题:
看这里(https://github.com/gruntwork-io/terragrunt-infrastructure-live-example/tree/master/prod/us-east-1/prod/webserver-cluster)我们可以看到terragrunt.hcl导入了从特定 URL 获取的模块asg-elb-service (也是 terragrunt 示例)
现在我的观点是一切都很好,直到模块解决了我的所有需求。但是使用提到的示例假设我想在这个模块之上添加一些东西(例如 ALB 的侦听器规则或任何东西) - 然后我想依赖模块输出并且我们可以检查“使用”模块公开这些:输出(https://github.com/gruntwork-io/terragrunt-infrastructure-modules-example/blob/master/asg-elb-service/outputs.tf)
但是,即使我在我的结构中添加tf文件 - 继续我的例子,它会是这样的:
我只是无法“插值”并从模块访问这些输出:(
amazon-web-services - 生成非 Terraform 创建的资源列表的最佳方法
几天来,我正在研究一种生成非地形创建资源列表的方法。目前我正在使用标记方法,但这意味着无法标记的 AWS 资源也应从 AWS Config 查询中排除。
标记部分也很麻烦,因为这必须手动完成。
- 有没有办法告诉 Terraform(或 Terragrunt)自动在资源上使用通用标签?
- 有没有办法让 Terraform 或任何其他工具创建状态文件中不可用的资源列表?
terraform - 减少 Terragrunt 控制台输出
Terragrunt 输出数百行文本,例如:
和
有什么方法可以让这个输出安静下来,只看到错误?
amazon-web-services - 我如何在 aws _route_table 中做动态路由?
我正在使用 terraform 创建我的 aws 路由表及其路由。
我基于此引用: https ://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table
我怎样才能做到不重复路线部分。我可以通过一组地图来做到这一点,它会知道我需要创建 2 条路线?
例子:
我尝试过这样的事情:
amazon-web-services - 如何让 Terragrunt 自动设置“AWS_PROFILE”环境变量?
我一辈子都无法让它发挥作用。我需要AWS_PROFILE
设置环境变量才能让 terragrunt 正常运行。如果我运行:
这会起作用,但这不是我想要运行的内容:
并让该自动选择我应该使用的正确 aws 配置文件。这是我所拥有的:
它总是向我抛出错误:
set_profile.sh
脚本如下:
如果我回显我AWS_PROFILE
的,它仍然是空白的。所以这就像运行命令实际上并没有将导出值保存到我的控制台。
我究竟做错了什么?有没有人真的能够成功地AWS_PROFILE
用 terragrunt 动态设置他们的?