问题标签 [terraform0.14.7]

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

amazon-web-services - 使用 Terraform 更改 hash_key 会导致表已存在错误

我有一个用这个 Terraform 创建的 DynamoDB 表:

该表已成功填充(有 4 条记录,如本文所述),但为了解决问题(在那篇文章中),我添加了一个字段PK并将其设置为hash_key字段,如下所示:

这在运行时导致了以下错误terraform apply

我需要做什么.tf才能让更改被接受?

0 投票
1 回答
598 浏览

terraform-provider-aws - 如何使地形资源块有条件

我有一个aws_acm_certificate我想在tf本地运行时避免的(因为我不想获得域名等)。我也不想在本地运行时注释掉所有涉及的代码。在本地运行时,我的大多数其他块(例如提供者的assume_role)都能够被排除。我怎样才能用完整的资源做到这一点?

我期望能够将值设置为环境文件count中的变量:tfvars

这会导致其他问题,例如需要在其他地方引用该资源。例如,输出资源的结果会出现问题:

在这种情况下,如果countvar 是0输出将失败,我不能plan在那里使用相同的方法,因为.countoutput

除了简单地不输出值之外,有没有办法安全地有条件地排除整个块?

0 投票
1 回答
2282 浏览

amazon-web-services - aws_iam_policy 和 aws_iam_role_policy 之间的区别

我有一个aws_iam_role要添加策略的。通常,我会创建一个策略aws_iam_role并将其附加到角色aws_iam_role_policy_attachment

但是,我看过一些文档aws_iam_role_policy,在我看来,这些文档似乎在做同样的事情。

我是正确的还是有我遗漏的细微差别?

0 投票
1 回答
273 浏览

terraform - Terraform 子模块对调用资源的依赖

我正在尝试在多个子模块之间创建依赖关系,这些子模块应该能够单独创建资源,并且应该能够在它们相互依赖时创建资源。

基本上我正在尝试创建多个虚拟机,并基于作为输出返回的 ip 地址和 vip ip 地址,我想创建 lbaas 池和 lbaas 池成员。

我保持项目结构如下

call_module.tf 包含对 lbaas-pool 模块和 lbaas-pool-members 的引用,因为这两个模块依赖于 main.tf 文件生成的资源的输出。它给出以下错误:

尚未声明托管资源。

由于尚未生成资源,并且在运行 terraform plan 和 apply 命令时正在尝试加载尚未创建的资源对象。不确定他的结构是否声明了资源之间的模块隐式依赖关系,以便模块可以单独工作以及在需要时完整堆栈。

预期行为:

main.tf 输出参数应该在 terraform 版本 0.14 中自动创建依赖项,但从上述错误看来情况并非如此。

0 投票
0 回答
349 浏览

terraform - 如何通过openstack中的terraform将多个卷动态附加到多个实例?

我编写了一个 terraform 模块(v0.14),可用于在 openstack 中配置多个实例,具有正确的可用性区域、网络端口、正确的风格,可以基于布尔输入变量创建 1 个本地磁盘或 1 个 blockstorage_volume 等等。现在我得到了一个功能请求,能够在多个实例上动态添加多个 blockstorage_volumes(=network/shared storage volumes)。

多个实例上的 1 个 blockstorage_volume 如何动态工作的示例:

所以现在假设我有 2 个实例,我想在每个实例中动态添加 2 个额外的 blockstorage_volumes,我的第一个想法是添加 2 个额外的动态资源作为试用:

.tf 文件中定义的 2 个额外 blockstorage_volumes 示例:

.tf 文件中定义的 2 个实例的示例:

在这里,我尝试为每个实例动态附加 2 个额外的 blockstorage_volumes:

openstack_compute_instance_v2.instance [each.key]显然是不正确的,因为它现在只为每个实例创建 1 个额外的 blockstorage_volume。有没有一种干净/优雅的方法来解决这个问题?所以基本上将变量“multiple_volumes”中的所有给定卷附加到 var.nodes 中定义的每个单个实例

亲切的问候,乔纳斯

0 投票
1 回答
215 浏览

terraform - 如何将使用 cidrsubnets 的子网的 CIDR 范围传递到 Terraform 版本 0.14 中的 VPC 模块

Terraform cidrsubnets 为我提供了我想要的以下子网。

我正在使用的 Terraform 版本:Terraform v0.14.9

如何使用 Terraform cidrsubnets函数将上述公共子网和私有子网的 CIDR 范围传递给下面的 VPC 模块。

有人可以帮我解决这个问题吗?

0 投票
2 回答
969 浏览

terraform - 具有来自 .tfvars 的值的 terraform for_each 实现

我有一个 common.tfvars 文件,其中变量定义为:

我在 main.tf 文件中使用以下资源定义引用此 var:

我想更改资源定义以使用“for_each”而不是“count”来循环列表:

我从 count 更改为 for_each 的动机是消除对我编写变量“bqtable_date_partition”元素的顺序的依赖

我这样做了:

我按预期收到以下错误:

给定的“for_each”参数值不合适:“for_each”参数必须是一个映射或一组字符串,并且您提供了一个字符串映射列表类型的值。

谁能帮助我在资源定义中进行哪些更改才能使用“for_each”?

Terraform 版本 - 0.14.x

0 投票
0 回答
89 浏览

devops - 错误:无法为 terraform 0.14.3 加载插件

我们的供应商出现以下错误

错误:无法加载插件

需要重新初始化插件。请运行“terraform init”。插件是 Terraform 用来访问和操作资源的外部二进制文件。提供的配置需要无法定位、不满足版本约束或不兼容的插件。Terraform 会自动从您的配置中发现提供者要求,包括子模块中使用的提供者。要查看要求和约束,请运行“terraform providers”。无法实例化提供程序“registry.terraform.io/hashicorp/aws”以获取架构:未知提供程序“registry.terraform.io/hashicorp/aws”使用来自 /root/.docker/config.json 的凭据进行身份验证

虽然我们也更换了提供者

除此之外,我们还使用了 required_providers 但没有运气

0 投票
0 回答
434 浏览

amazon-web-services - terraform 无法销毁 aws 上的废弃资源对象

我正在使用 aws 并使用 terraform 创建资源。我对资源进行了更改aws_lauch_configuration并应用了 usign terraform。

Tf 代码是

Terraform 显示它首先将创建该资源,然后在 create_before_destroy 设置为 true 时之前销毁。因此,在创建资源后,teraform 无法删除较旧的资源。所以我从 aws 控制台手动删除了它,然后再次运行 terraform 脚本。

现在它显示被销毁的对象将被销毁。

应用 terraform 后,它会抛出错误error deleting Autoscaling Launch Configuration (staging-launch-config-20210723120615775100000001): ValidationError: Launch configuration name not found - Launch configuration staging-launch-config-20210723120615775100000001 not found status code: 400, request id: 12e7aa05-f3b1-4d75-a5a5-2093df3e5838

我知道这个错误将被抛出,因为资源在 aws 上不存在(手动删除)。我试过terraform apply -refresh=true了,但没有用。请帮我解决这个错误。