我应该如何使用 Terraform 在 OVH 上创建专用网络/子网?如果您使用provider,则有一个与 OpenStack ( openstack_networking_subnet_v2
) 和 ovh-specific ( ) 相关的公共资源。ovh_publiccloud_private_network_subnet
ovh
我之所以问,是因为当我按照本指南进行操作时,我的专用网络接口没有在接口上分配 ipv4-address(看起来同样的问题已经在这个问题中描述过:Private network creation with Terraform on OVH's Openstack)。我可以在 Horizon 控制面板中看到一个 ip-addr,但是当我使用 Ext-net ipv4 addr 和类型 ssh 到实例时,ifconfig
我看到没有为专用网络接口分配 ipv4 addr。接口已启动,但未分配 ipv4。我只是使用指南中的 Terraform 代码,如下所示:
# Create a private sub network
resource "ovh_publiccloud_private_network_subnet" "private_subnet" {
# Get the id of the resource ovh_publiccloud_private_network named
# private_network
network_id = "${ovh_publiccloud_private_network.private_network.id}"
project_id = "${var.project_id}" # With OS_TENANT_ID your tenant id's project
region = "WAW1" # With OS_REGION_NAME the OS_REGION_NAME environment variable
network = "192.168.42.0/24" # Global network
start = "192.168.42.2" # First IP for the subnet
end = "192.168.42.200" # Last IP for the subnet
dhcp = false # Deactivate the DHCP service
provider = "ovh.ovh" # Provider's name
}
resource "openstack_compute_instance_v2" "front" {
# Number of time the instance will be created
count = "${length(var.front_private_ip)}"
provider = "openstack.ovh" # Provider's name
name = "front" # Instance's name
flavor_name = "s1-2" # Flavor's name
image_name = "CoreOS Stable" # Image's name
key_pair = "${openstack_compute_keypair_v2.test_keypair.name}"
security_groups = ["default"] # Add into a security group
network = [
{
name = "Ext-Net" # Public interface name
}
,
{
# Private interface name
name = "${ovh_publiccloud_private_network.private_network.name}"
# Give an IP address depending on count.index
fixed_ip_v4 = "192.168.42.4"
}
]
}
所以正如我所说,上面的例子对我不起作用(因为我必须在接口上手动分配私有 ipv4-addr 而我希望 Terraform 为我做这件事)。然后我在 OVH github 上发现了terraform-ovh-publiccloud-network模块。尝试了此 repo 中的简单示例(从自述文件复制粘贴),我可以看到 Bastion 节点上的第二个接口成功地从私有网络范围分配了 Ipv4 地址。从模块的代码中,我还可以看到openstack_networking_subnet_v2
使用的是资源而不是 OVH 特定的ovh_publiccloud_private_network_subnet
?为什么以及它们之间有什么区别?当我从头开始编写自己的 Terraform 定义时,我应该使用哪一个?
我的目标只是创建一个私有网络/子网并创建一个具有两个接口的计算实例(连接到Ext-Net
我刚刚创建的公共子网和私有子网)。如果您有这样的经验,请为我提供一个简短的 OVH 工作示例,或者如果我遗漏了什么,请告诉我。