Как создать частную подсеть на OVH с помощью Terraform?

Как я должен создать частную сеть / подсеть на OVH, используя Terraform? Существует общий ресурс, связанный с OpenStack (openstack_networking_subnet_v2) и ovh-специфичные (ovh_publiccloud_private_network_subnet) если вы используете ovh поставщик.

Я спрашиваю, потому что, когда я следую этому руководству, мой интерфейс частной сети не получает ipv4-адрес, назначенный интерфейсу (похоже, та же проблема уже была описана в этом вопросе: Создание частной сети с помощью Terraform на Openstack в OVH). Я могу видеть IP-адрес в панели управления Horizon, но когда я ssh к экземпляру, используя Ext-Net IPR4 адрес и введите ifconfig Я вижу, что IPR4 адрес не назначен для интерфейса частной сети. Интерфейс работает, но 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 сделал это для меня). Затем я обнаружил https://github.com/ovh/terraform-ovh-publiccloud-network на OVH GitHub. Попробовал простой пример из этого репозитория (скопированный из ReadMe), и я вижу, что второй интерфейс на узле Bastion успешно получает Ipv4 addr из диапазона частных сетей. Из кода модуля я также вижу, что openstack_networking_subnet_v2 ресурс используется вместо OVH-специфичного ovh_publiccloud_private_network_subnet? Почему и чем они отличаются? Какой из них я должен использовать, когда пишу свое собственное определение Terraform с нуля?

Моя цель - просто создать частную сеть / подсеть и создать вычислительный экземпляр с двумя интерфейсами (подключенными к общедоступным Ext-Net и частную подсеть я только что создал). Пожалуйста, предоставьте мне краткий рабочий пример для OVH, если у вас есть такой опыт, или дайте мне знать, если я что-то упустил.

1 ответ

Вы можете арендовать /24 общедоступных IP-адресов от OVH примерно за 800 долларов. Но ты должен сделать это первым.

Другие вопросы по тегам