问题标签 [terraform-provider-openstack]

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

terraform - 在 openstack 上使用 terraform 旋转不同图像的多个实例

我一直在尝试使用 terraform 启动不同图像的多个实例,但到目前为止还没有运气。我可以使用count. 在使用 旋转不同的图像时for_each,我无法获得正确的配置。

我有以下变量 .tf 配置文件。

我看到以下错误消息::

错误:不支持的属性

在 tf-backend-fra/main.tf 第 49 行,在资源“openstack_compute_floatingip_associate_v2”“fip”中:49:instance_id = openstack_compute_instance_v2.instance.*.id[count.index]

此对象没有名为“id”的属性。

我不知道如何完成它for_each。Terraform 版本是 0.12.17。非常感谢您的帮助。

谢谢,哈沙

0 投票
1 回答
3890 浏览

terraform - 迭代 terraforms 0.12.23 中的 json 对象列表

我在 json 文件中有两个对象数组,我通过 cli 命令将它们作为 tfvar 文件传递​​。一个是风味列表,另一个是图像列表。我想做的是为每种风味和图像创建一个虚拟机,并将它们结合起来。

这是图像数组的示例:

这是风味列表的示例:

我已按照此处的说明https://www.hashicorp.com/blog/hashicorp-terraform-0-12-preview-for-and-for-each/但它不起作用,错误消息也无济于事。

这是我的 tf 文件:

编辑

即使在 mjpgpy3 建议之后,我也会收到相同的错误消息:

0 投票
1 回答
3986 浏览

terraform - 引用 Terraform 中的其他模块资源

我的 Terraform Cloud git 项目中有这样的层次结构:

所有主main.tf文件都包含带有子文件夹的模块定义:

/main.tf

/aws/main.tf

/aws/security-rules/main-tf

/aws/vms/main-tf

然后我定义了这个安全规则。

/aws/security-rules/sec-rule1/main-tf

而且我想从一个或多个 VM 中引用它,但我不知道如何通过资源 ID(或名称)进行引用。我使用简单的名称而不是参考。

/aws/vms/vm1/main-tf

我想使用通过 name 或 ID 引用的安全规则(和更多东西),因为它会更加一致。此外,当我创建一个新的安全规则并同时创建一个 VM 时,Terraform OpenStack 提供者计划它没有错误,但是在应用它时,会产生错误,因为 VM 是先创建的,它没有发现尚未创建新的安全规则。

我怎样才能做到这一点?

0 投票
1 回答
1003 浏览

terraform-provider-openstack - 如何使用terraform将浮动IP地址关联到openstack中的实例

我正在使用 terraform 在 openstack 中创建几个实例,我想自动为它们分配浮动 IP 地址,而无需任何手动干预。

我的 .tf 文件如下:

我收到一个错误

“错误:缺少资源实例键

在 image-provisioning.tf 第 33 行,在资源“openstack_compute_floatingip_associate_v2”“fip-associate”中:33:instance_id = openstack_compute_instance_v2.terraform-vm.id[count.0]”

我的 terraform 版本是: Terraform v0.12.24 + provider.openstack 1.26.0

0 投票
2 回答
2032 浏览

terraform - 带有 CSV 文件的天蓝色 Terraform 参数

我正在尝试使用 CSV 文件访问 terraform 变量数据,创建资源组并将资源组的名称添加到 CSV 文件中并尝试访问代码。

这是代码:

我收到以下错误:

更新

这是错误 SS

CSV 文件

新更新

新的更新 CSV 文件和输出

错误

CSV 文件

0 投票
2 回答
683 浏览

terraform - Terraform 和 OpenStack - 零停机时间变化

openstack_compute_instance_v2用来在 OpenStack 中创建实例。存在生命周期设置create_before_destroy = true。如果我更改卷大小(需要替换实例),它就可以正常工作。

但。当我进行风味更改时,可以使用resize instanceOpenStack 中的选项来完成,它就是这样做的,但不关心任何 HA。在调整大小完成之前,集群中的所有实例将在 20-30 秒内不可用。

我怎样才能改变这种行为?

Ansible 中的一些设置serial或其他一些选项会派上用场。但我什么也找不到。任何能让我说“至少有一半的实例需要始终在线”的解决方案。

地形版本:12.20。

TF计划:https ://pastebin.com/ECfWYYX3

0 投票
1 回答
1251 浏览

terraform - Terraform - 创建 OpenStack 负载均衡器时出错:找不到资源

我正在尝试使用 Terraform 创建 OpenStack 负载均衡器,但出现以下错误terraform apply

错误:创建 openstack_lb_loadbalancer_v2 时出错:找不到资源

在 load-balancer/main.tf 第 71 行,在资源“openstack_lb_loadbalancer_v2”“lb_1”中:71:资源“openstack_lb_loadbalancer_v2”“lb_1”{

我的模板如下所示。

我不知道如何进一步调试。意思vip_subnet_id是没有找到吗?还是openstack_lb_loadbalancer_v2未知的资源类型?

我正在使用 Terraform v0.13.5 和 terraform-provider-openstack v1.33.0。

更新

我通过 Web 界面手动创建了一个 LB,现在我尝试通过 Terraform CLI 导入它并得到以下响应

错误:无法导入不存在的远程对象

在尝试将现有对象导入到 openstack_lb_loadbalancer_v2.lb_1 时,提供程序检测到不存在具有给定 ID 的对象。只能导入预先存在的对象;检查 id 是否正确以及它是否与提供者配置的区域或端点相关联,或者使用“terraform apply”为此资源创建一个新的远程对象。

我开始怀疑这可能是 OpenStack 服务器端的问题。

0 投票
1 回答
84 浏览

ansible - Terraform 创建列表

我尝试将我的 coturn 服务器的所有浮动 ips 放入 ansible 库存中。

错误:此对象没有名为“floating_ip”的属性。

有效,但仅适用于一种情况。

我的模板文件。

我的 openstack_compute_floatingip_associate_v2 定义。

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 投票
2 回答
438 浏览

terraform - Terraform Openstack:在创建期间附加网络接口

我想在 openstack 中创建一个仅附加预定义网络接口的实例。我可以访问 openstack,我知道网络接口 ID/名称。

创建实例后,我可以简单地附加接口。这样,它将从池中随机分配一个 IP,然后连接网络接口。那不是我想要的。

如开头所述,我想在构建实例时附加接口。

编辑 - 示例代码:

主机创建:

接口贴:

这行不通。Terraform 返回错误:

错误:创建 OpenStack 服务器时出错:访问 [POST 服务器] 时预期的 HTTP 响应代码 [],但得到 409 {"conflictingRequest": {"message": "找到多个可能的网络,使用更具体的网络 ID。" , "代码": 409}}

回到我最初的查询:我想部署一个新主机并附加一个网络接口。结果应该是只有一个 IP 地址的主机,即我附加的那个。