问题标签 [terraform0.12+]

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

terraform-provider-azure - Terraform:如何安装多个版本的提供程序插件?

我正在尝试使用 azurerm 提供程序通过 Terraform 0.12 部署 Azure 资源。我有 AKS 模块,它适用于 azurerm 版本 2.5.0,但与 2.9.0 不同。另一方面,Postgresql 模块适用于 2.9.0 版本但与 2.5.0 中断我想通过单个 terraform 应用部署这两个资源。

我尝试了以下配置,但在初始化阶段失败。


版本约束派生自配置中提供程序“azurerm”块中的“版本”参数。子模块也可以应用提供者版本约束。要查看当前配置中每个模块请求的提供程序版本,请运行“terraform providers”。

要继续,必须通过在整个配置中调整或删除提供程序块中的“版本”参数来放松此提供程序的版本约束。

错误:没有合适的版本可用

如何安装提供程序版本并将 AKS 模块指向 v2.5.0 并将 Postgres 模块指向 v2.9.0

0 投票
1 回答
263 浏览

terraform - 如何使用 terraform 编辑 AWS CloudFront 设置以编辑源和源组设置

我特别在寻找具有以下设置的方法,如下图所示。我想限制 S3 存储桶并选择创建新的源访问身份,如下所示。

它还应该在 S3 存储桶策略中进行更新,但图像中的设置可能看起来不同。

简而言之,我找不到或者可能是我不了解实现它的官方 terraform 文档。 源和源组的 CloudFront 设置

0 投票
1 回答
561 浏览

terraform - 使用模块 vpc 时如何标记子网

创建成功,但唯一的问题是标记,因为所有新创建的使用模块 vpc 标记都是“default-vpc”

我想分别标记每个资源,如私有子网、公共子网等。

0 投票
0 回答
94 浏览

terraform-provider-aws - 升级到 terraform 0.12 后的问题

很遗憾 terraform 不向后兼容。

但是在将其升级到 Terraform 0.12 后,我开始遇到问题,并且无法获得 TF0.12 的语法。

错误:缺少资源实例键

由于 aws_instance.ec2_instance 设置了“计数”,因此必须在特定实例上访问其属性。

我试过“${aws_instance.ec2_instance[count.index].primary_network_interface_id}”但没有运气。

0 投票
1 回答
2175 浏览

terraform - Terraform 错误:添加 LB 侦听器证书时出错:ValidationError:无法为 %s 侦听器指定证书

花了一天多的时间,收到此错误“错误:添加 LB 侦听器证书时出错:验证错误:无法为 %s 侦听器指定证书”我也尝试导入 ACM 臂,但同样的问题。有人可以帮忙吗?

0 投票
1 回答
1468 浏览

terraform - Terraform - 无法使用 terraform-aws-modules/security-group/aws 定义安全组

我正在尝试此模块中的示例 https://registry.terraform.io/modules/terraform-aws-modules/security-group/aws/3.10.0

main.tf:

并且 terraform apply 失败

我究竟做错了什么?

0 投票
1 回答
520 浏览

list - Terraform 12 将计数转换为 for_each

我目前在 Terraform 中计算索引的方式遇到了一些挑战。我正在寻求一些帮助以将其转换为 for_each。

我尝试了以下但没有成功:

我正在查询一个 Github 组织并收到大量存储库。然后我使用 count 将这些存储库添加到团队中。不幸的是,一旦添加或更改了新的存储库,Terraform 就会出错。话虽这么说,我认为新的 for_each 函数可以为我解决这个难题,但是,我在思考如何实现它时遇到了麻烦;在这种特殊情况下。任何帮助,将不胜感激。

0 投票
1 回答
4573 浏览

terraform - Terraform 不断强制重新创建资源(删除然后创建)

我正在使用 terraform + terraform cloud(用于远程状态管理)

我之前曾尝试检查taint命令的工作原理并做到了这一点

在此处输入图像描述

但后来我尝试完全删除并重新创建堆栈。而且似乎我没有“受污染”的资源,因为以下输出是这样说的。

但是,我仍在重新创建堡垒主机,因为它是由

这是我的模块结构

main.tf(根级别)

这是我的堡垒 terraform config modules/bastion/main.tf

我做错了什么或错过了什么?

0 投票
2 回答
535 浏览

terraform - most_recent=true 的“aws_ami”会影响未来的更新吗?

鉴于下面的配置,如果亚马逊推出新版本的 AMI,我对基础设施运行应用命令会发生什么?

测试实例会被销毁并重新创建吗?

所以场景

  1. 地形初始化
  2. 地形应用
  3. 等N个月
  4. 地形计划(或申请)

我是否会看到使用当时“最近”的旧版本 AMI 对 N 个月前创建的 ec2 实例进行“强制”重新创建?

most_recent=true 的“aws_ami”会影响未来的更新吗?

0 投票
2 回答
202 浏览

terraform - 在资源本身使用 for_each 的资源的子元素中使用 for 循环进行插值

例如,这里是使用 for_each 部署的资源(非常简化)(for_each 不是我遇到问题的地方,我可以整天这样做 - 它试图正确插入 ovf_network_map 中的数据是我遇到问题的地方):

对于这个简化的示例,最终目标是 ovf_network_map 包含 { "eth0" = data.vsphere_network.INSIDE.id, "eth1" = data.vsphere_network.OUTSIDE.id } (显然,数据对象将被进一步插值那里,但希望我试图完成的问题在这里出现)。

有2个错误: The "count" object can be used only in "resource" and "data" blocks, and only when the "count" argument is set. 另外 A data resource "vsphere_network" "net" has not been declared,显然我的插值有错误。希望我在这里需要的插值是可能的-我可能以错误的方式进行此操作-有什么想法吗?

编辑添加:我已经能够计算出 eth0、eth1 的数字计数:eth${index(slice(var.customers[var.customer][var.idc].vms[each.key], 3, length(var.customers[var.customer][var.idc].vms[each.key]) - 1), net)}" => data.vsphere_network.net.id

所以现在剩下的就是 -data.vsphere_network.net.id当我遇到错误时,我坚持尝试“加倍”插入“网络”A data resource "vsphere_network" "net" has not been declared