【发布时间】:2018-03-07 12:26:54
【问题描述】:
我正在尝试使用 Terraform 在 OVH 的公共云上部署一些 Openstack 实例。关键是(目前)在两个网络上有两个实例。每个实例都应该有一个外部 IP 地址(这不是问题)和一个私有网络上的内部 IP 地址(这会给我带来麻烦)。
我的地形文件是:
resource "openstack_compute_keypair_v2" "keypair" {
provider = "openstack.ovh"
name = "jpin"
public_key = "${file("~/.ssh/id_rsa.pub")}"
region = "GRA3"
}
resource "openstack_networking_network_v2" "network_1" {
provider = "openstack.ovh"
name = "network_1"
admin_state_up = "true"
region = "GRA3"
}
resource "openstack_networking_subnet_v2" "subnet_1" {
provider = "openstack.ovh"
name = "subnet_1"
network_id = "${openstack_networking_network_v2.network_1.id}"
cidr = "192.168.199.0/24"
ip_version = 4
region = "GRA3"
enable_dhcp = true
}
resource "openstack_networking_port_v2" "port_1" {
provider = "openstack.ovh"
name = "port_1"
network_id = "${openstack_networking_network_v2.network_1.id}"
admin_state_up = "true"
region = "GRA3"
fixed_ip {
"subnet_id" = "${openstack_networking_subnet_v2.subnet_1.id}"
}
}
resource "openstack_networking_port_v2" "port_2" {
provider = "openstack.ovh"
name = "port_2"
network_id = "${openstack_networking_network_v2.network_1.id}"
admin_state_up = "true"
region = "GRA3"
fixed_ip {
"subnet_id" = "${openstack_networking_subnet_v2.subnet_1.id}"
}
}
resource "openstack_compute_instance_v2" "instance_1" {
provider = "openstack.ovh"
name = "instance_1"
security_groups = ["default"]
region = "GRA3"
key_pair = "${openstack_compute_keypair_v2.keypair.name}"
flavor_name = "s1-2"
image_name = "Debian 8 - Docker"
network = [
{
name = "Ext-Net"
},
{
port = "${openstack_networking_port_v2.port_1.id}"
},
]
}
resource "openstack_compute_instance_v2" "instance_2" {
provider = "openstack.ovh"
name = "instance_2"
security_groups = ["default"]
region = "GRA3"
key_pair = "${openstack_compute_keypair_v2.keypair.name}"
flavor_name = "s1-2"
image_name = "Debian 8 - Docker"
network {
port = "${openstack_networking_port_v2.port_2.id}"
}
}
{
name = "Ext-Net"
},
part 允许我将实例连接到外部世界。我的两个实例应该在 192.168.199.0/24 网络中有 IP 地址,但它们没有。他们没有 IP 地址,也没有路由来与此网络进行通信。但我知道他们有合适的 IP 地址:
在该屏幕截图中,instance_1 与外部连接良好(如预期的那样)。 instance_1 和 instance_2 都有一个私有 IP 地址。但是:
root@instance-1:~# ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fa:16:3e:b1:7c:ae brd ff:ff:ff:ff:ff:ff
inet 145.239.XXX.YY/32 brd 145.239.XXX.YY scope global eth0
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fa:16:3e:6a:87:8e brd ff:ff:ff:ff:ff:ff
eth1 没有该 IP 地址(192.168.199.2 或 .3)。并且没有到 192.168.199.0/24 子网的路由。
【问题讨论】:
-
对我来说同样的问题
-
您应该使用您的 terraform 代码提交一个新问题,以便我们为您提供帮助。我会调查的
-
实际上,OVH 文章中的一个示例不起作用docs.ovh.com/gb/en/public-cloud/how-to-use-terraform,未在接口上分配专用网络的 IP(就像您在问题中描述的那样)。可能这就是为什么OVH的github上有一个特殊的网络模块
ovh/publiccloud-network/ovh