如何使用Terraform在OVH上创建私有子网?

时间:2018-02-07 21:25:12

标签: openstack terraform ovh openstack-horizon terraform-provider-openstack

我应该如何使用Terraform在OVH上创建专用网络/子网? 如果您使用openstack_networking_subnet_v2提供程序,则有一个与OpenStack(ovh_publiccloud_private_network_subnet)和特定于ovh(ovh)相关的公共资源。

我在问,因为当我关注this guide时,我的私有网络接口没有在接口上分配ipv4-address(看起来在这个问题中已经描述了同样的问题:Private network creation with Terraform on OVH's Openstack)。我可以在Horizo​​n控制面板中看到一个ip-addr,但是当我使用Ext-net ipv4 addr ssh to instance并输入ifconfig时,我看到没有为私有网络接口分配ipv4 addr。接口是UP但没有分配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(从ReadMe复制粘贴)的简单示例,我可以看到Bastion节点上的第二个接口成功从私有网络范围分配Ipv4 addr。从模块的代码我还可以看到使用openstack_networking_subnet_v2资源而不是OVH特定的ovh_publiccloud_private_network_subnet?为什么和它们之间有什么区别?当我从头开始编写自己的Terraform定义时,我应该使用哪一个?

我的目标只是创建一个专用网络/子网,并创建一个带有两个接口的计算实例(连接到公共Ext-Net和我刚刚创建的私有子网)。如果您有这样的经历,请为我提供一个简短的工作示例,或者如果我遗失了某些内容,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可以从OVH租用/ 24的公共IP,价格为$ 800。但是你必须先这样做。