问题标签 [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.
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如果有其他想法,我会很高兴。
此致。
terraform - for_each 通过 Terraform 0.12 中的对象
我想用下一种方式调用 terraform 模块:
我创建的角色模块定义是:
结果我想看到正确生成的动作:
我收到错误:给定的值不适合子模块变量“动作”。我在模块动态资源中做错了什么?谢谢
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 和其他较低环境中?
注意: - 我也知道工作区,但这就是我想要实现的方式。
terraform - Terraform模板文件模板中数值与两个变量的比较
我正在尝试使用 Terraform 的 templatefile 函数创建一个渲染文件。
这是我的代码:
我的问题是%{ if index < masters_count ~}
条件不起作用,我收到 Terraform 错误:
看起来它不知道 if 块中的索引变量。如何使该行的比较可以访问索引变量?
terraform - Terraform 0.12 中对象的动态资源
我想用下一种方式调用 terraform 模块:
我创建的角色模块定义是:
结果我想看到正确生成的 4 个动作(每个数据库定义了角色 2):
我收到错误:给定的键未标识此集合值中的元素。我在模块动态资源中做错了什么?谢谢
terraform - 调用函数“文件”失败:不存在文件 - Terraform
我的 terraform 代码中有一个template_file
部分,其中有一个变量值可以从如下文件中选择
该文件将在任务中间生成,但 terraform 在apply
阶段本身开始时会查找它。我什depends_on
至尝试添加无济于事并引发以下错误
我怎样才能使这项工作,对此的任何帮助将不胜感激
azure-devops - 地形表达
我正在研究这个 azure_rm nsg(网络安全组)terraform 模块,我正在尝试使其尽可能多地驱动变量和通用。一切都按预期工作,但一个标志出错了。
Main.tf 文件
`
变量.tf 文件:
我能够将列表读入'destination_port_range'的变量,但不能读入优先级变量,并且它不断出错并出现以下错误,我不知道为什么?
如果有人能指出我正确的方向来解决它,那将是一个很大的帮助和高度赞赏。我想要的只是从带有索引的列表中读取值,以便我可以使用相同的入站规则来创建多个规则。
提前致谢。
terraform - 如何在脚本开始时在 terraform 中运行 null_resource
我有一个用例,我从 terraform 中的本地人获取所有变量,如下所示,但在此之前,我想运行一个 null_resource 块,它将运行一个 python 脚本并将所有数据更新到本地文件中。
所以我的用例简单来说是在 terraform 脚本的开头执行一个 null_resource 块,然后运行所有其他资源块
我当前的代码示例如下:
我该如何做到这一点?我所尝试的只是在本地人中添加一个触发器命令,如下所示,但即使这样也不起作用。
azure-devops - 存在资源授权问题:“管道无效。> 作业验证:步骤 TerraformTaskV1
当我拆分 yaml 以制作模板时,我在 Azure devops 管道中收到此错误
存在资源授权问题:“管道无效。作业验证:步骤 TerraformTaskV1 输入 backendServiceArm 引用服务连接 azurerm 无法找到。服务连接不存在或未被授权使用。有关授权详情,请参阅到https://aka.ms/yamlauthz。”
这里给出了一个解决方案来删除任务并再次添加。但这对我不起作用。
当我在一个 yaml 文件中使用 terraform 时,它起作用了。
当我一分为二(模板)
它失败并给出了上面写的错误!
它还显示了一个奇怪的授权资源。单击“批准”也无法解决。又是为什么?如果服务连接有任何问题,为什么我的单文件 yaml 应该工作?这里没有审批问题!
path - 如何在 terraform 中指定模板文件的路径
我有一个 json 文件,其中定义了 stepfunction 状态机,然后在我想使用的 terraform 中templatefiile()
,当前文件夹结构是:
在 step-function.tf 文件中:
这会给我错误:
我不完全明白为什么,我该如何修改这个路径,当我在本地测试这个 terraform 脚本时,如果我使用templatefile("../../xxx/xxx/terraform/step-function,json")
它会工作,但我不想使用这个表达式,我该如何修改它?非常感谢。