Как создать частную подсеть на 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 долларов. Но ты должен сделать это первым.