【发布时间】:2020-11-12 13:49:42
【问题描述】:
我正在尝试使用 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" {
我的模板如下所示。
resource "openstack_lb_loadbalancer_v2" "lb_1" {
name = "loadbalancer"
vip_subnet_id = openstack_networking_subnet_v2.public.id
}
resource "openstack_lb_listener_v2" "listener_1" {
name = "https"
protocol = "TERMINATED_HTTPS"
protocol_port = 443
loadbalancer_id = openstack_lb_loadbalancer_v2.lb_1.id
default_tls_container_ref = openstack_keymanager_container_v1.tls_1.container_ref
}
resource "openstack_networking_network_v2" "lb_network" {
name = "lb-network"
port_security_enabled = "true"
}
resource "openstack_networking_subnet_v2" "public" {
name = "lb-subnet"
network_id = openstack_networking_network_v2.lb_network.id
cidr = "10.0.0.0/24"
ip_version = 4
}
我不知道如何进一步调试。这是否意味着找不到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 服务器端的问题。
【问题讨论】:
-
我遇到了与 terraform 提供程序完全相同的问题。所以我认为这是 terraform 提供商或 OpenStack 本身的问题。
-
我在这里用 terraform openstack 创建了一个错误:github.com/terraform-provider-openstack/…
-
我检查了负载均衡器资源的源代码,以确定如果您使用的是 octavia,则必须设置 use_octavia :) 我在下面发布了一个答案。希望它也能解决您的问题。
标签: terraform openstack terraform-provider-openstack