Je tente de déployer certaines instances d'Openstack sur le Cloud public d'OVH en utilisant Terraform. Le point est (pour l'instant) d'avoir deux instances sur deux réseaux. Chaque instance doit avoir une adresse IP externe (ce qui n'est pas un problème) et une adresse IP interne sur un réseau privé (ce qui me cause des problèmes).Création de réseau privé avec Terraform sur Openstack d'OVH
Mon fichier terraform est:
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}"
}
}
Le
{
name = "Ext-Net"
},
partie
me permet de connecter l'instance au monde extérieur. Mes deux instances doivent avoir des adresses IP dans le réseau 192.168.199.0/24, mais ce n'est pas le cas. Ils n'ont pas d'adresses IP ni de routes à communiquer sur ce réseau. Mais je sais qu'ils ont les adresses IP appropriées:
Sur cette capture d'écran, Instance_1 est bien relié à l'extérieur (comme prévu). instance_1 et instance_2 ont toutes les deux une adresse IP privée. Mais:
[email protected]:~# 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 n'a pas cette adresse IP (192.168.199.2 ou .3). Et il n'y a pas de route vers le sous-réseau 192.168.199.0/24.
Même problème pour moi – Derp
Vous devriez soumettre une nouvelle question avec votre code terraform afin de nous permettre de vous aider. Je vais regarder dans –
En fait, un exemple de l'article sur OVH ne fonctionne pas https://docs.ovh.com/gb/en/public-cloud/how-to-use-terraform/, les IP de réseau privé font ne pas être assigné sur l'interface (comme vous l'avez décrit dans votre question). Et c'est probablement la raison pour laquelle il y a un module spécial pour le réseau sur le github d'OVH 'ovh/publiccloud-network/ovh' – Derp