问题标签 [terraform-template-file]

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 回答
207 浏览

terraform - 在 Terraform 中覆盖名称标签

为了我们项目的需要,我们需要通过 Terraform (v. 0.13.5) 自动创建 AWS 实例。我们正在使用 Jenkins 管道,它有一个 groovy 脚本并使用这个 shell 调用 terraform:

因为我们会在不同的AWS实例上进行操作,所以我们需要在创建过程中管理AWS实例的Name,所以每个实例都应该有唯一的名称(由Jenkins作业中的字段管理。所以换句话说我们需要“将一个 groovy 变量(比如说 ${nameAwsInstance})导入 Terraform 名称标签(在 AWS 实例创建中使用)。

我尝试了不同的方法,主要基于“-var”选项,试图覆盖名称标签,例如:

-var 'var.tags["Name"]=${nameAwsInstance}

但是他们都没有工作。

那么,是否可以覆盖名称标签,语法是什么?

PS如果有其他想法,我会很高兴。

此致。

0 投票
1 回答
148 浏览

terraform - for_each 通过 Terraform 0.12 中的对象

我想用下一种方式调用 terraform 模块:

我创建的角色模块定义是:

结果我想看到正确生成的动作:

我收到错误:给定的值不适合子模块变量“动作”。我在模块动态资源中做错了什么?谢谢

0 投票
2 回答
505 浏览

amazon-web-services - 将从子 terraform 模板创建的资源 id 导入父 terraform 模板

用例

  • 使用 Terraform 我想创建不同的 preprod env(例如:dev、qa、uat env.. 等等)。资源定义和模块使用将相同,唯一的区别是名称前缀,因此它为每个提到的 env 创建单独的资源,但保持 VPC 对所有人通用。

Terraform 版本:v0.13.5

目录结构

preprod-common

主文件

输出.tf

开发者

主文件

前缀- 是环境名称。这样,它会根据前缀值为每个环境创建单独的资源,例如:(dev、qa 或 uat..so on)。

质量保证

主文件

等等..对于其他环境。

仅供参考 - 我已经运行了 preprod-common 配置,并且它创建了一个新的 AWS VPC。问题是,如何将 preprod-common 创建的 vpc_id 引用到 dev、qa 和其他较低环境中?

注意: - 我也知道工作区,但这就是我想要实现的方式。

0 投票
2 回答
114 浏览

terraform - Terraform模板文件模板中数值与两个变量的比较

我正在尝试使用 Terraform 的 templatefile 函数创建一个渲染文件。

这是我的代码:

我的问题是%{ if index < masters_count ~}条件不起作用,我收到 Terraform 错误:

看起来它不知道 if 块中的索引变量。如何使该行的比较可以访问索引变量?

0 投票
0 回答
69 浏览

terraform - Terraform 0.12 中对象的动态资源

我想用下一种方式调用 terraform 模块:

我创建的角色模块定义是:

结果我想看到正确生成的 4 个动作(每个数据库定义了角色 2):

我收到错误:给定的键未标识此集合值中的元素。我在模块动态资源中做错了什么?谢谢

0 投票
2 回答
1447 浏览

terraform - 调用函数“文件”失败:不存在文件 - Terraform

我的 terraform 代码中有一个template_file部分,其中有一个变量值可以从如下文件中选择

该文件将在任务中间生成,但 terraform 在apply阶段本身开始时会查找它。我什depends_on至尝试添加无济于事并引发以下错误

我怎样才能使这项工作,对此的任何帮助将不胜感激

0 投票
1 回答
111 浏览

azure-devops - 地形表达

我正在研究这个 azure_rm nsg(网络安全组)terraform 模块,我正在尝试使其尽可能多地驱动变量和通用。一切都按预期工作,但一个标志出错了。

Main.tf 文件

`

变量.tf 文件:

我能够将列表读入'destination_port_range'的变量,但不能读入优先级变量,并且它不断出错并出现以下错误,我不知道为什么?

如果有人能指出我正确的方向来解决它,那将是一个很大的帮助和高度赞赏。我想要的只是从带有索引的列表中读取值,以便我可以使用相同的入站规则来创建多个规则。

提前致谢。

0 投票
1 回答
3925 浏览

terraform - 如何在脚本开始时在 terraform 中运行 null_resource

我有一个用例,我从 terraform 中的本地人获取所有变量,如下所示,但在此之前,我想运行一个 null_resource 块,它将运行一个 python 脚本并将所有数据更新到本地文件中。

所以我的用例简单来说是在 terraform 脚本的开头执行一个 null_resource 块,然后运行所有其他资源块

我当前的代码示例如下:

我该如何做到这一点?我所尝试的只是在本地人中添加一个触发器命令,如下所示,但即使这样也不起作用。

0 投票
2 回答
2840 浏览

azure-devops - 存在资源授权问题:“管道无效。> 作业验证:步骤 TerraformTaskV1

当我拆分 yaml 以制作模板时,我在 Azure devops 管道中收到此错误

存在资源授权问题:“管道无效。作业验证:步骤 TerraformTaskV1 输入 backendServiceArm 引用服务连接 azurerm 无法找到。服务连接不存在或未被授权使用。有关授权详情,请参阅到https://aka.ms/yamlauthz。”

这里给出了一个解决方案来删除任务并再次添加。但这对我不起作用。

当我在一个 yaml 文件中使用 terraform 时,它起作用了。

当我一分为二(模板)

它失败并给出了上面写的错误!

它还显示了一个奇怪的授权资源。单击“批准”也无法解决。又是为什么?如果服务连接有任何问题,为什么我的单文件 yaml 应该工作?这里没有审批问题!在此处输入图像描述

0 投票
0 回答
939 浏览

path - 如何在 terraform 中指定模板文件的路径

我有一个 json 文件,其中定义了 stepfunction 状态机,然后在我想使用的 terraform 中templatefiile(),当前文件夹结构是:

在 step-function.tf 文件中:

这会给我错误:

我不完全明白为什么,我该如何修改这个路径,当我在本地测试这个 terraform 脚本时,如果我使用templatefile("../../xxx/xxx/terraform/step-function,json")它会工作,但我不想使用这个表达式,我该如何修改它?非常感谢。