Как связать плавающий IP с конкретным интерфейсом с Heat
Я пытаюсь создать стек, используя openstack HEAT, одну из виртуальных машин (NOVA::Server
) нужно иметь 2 сетевых интерфейса
поэтому в моем горячем шаблоне я создаю 2 порта и связываю их с NOVA::Server
и дать плавающий IP одному из них gw_float_port
....
gw_instance:
type: "OS::Nova::Server"
properties:
key_name: { get_param: key_name }
image: { get_param: image_id }
flavor: { get_param: instance_type }
user_data:"#!/bin/sh \necho \"Starting the OVS setup!\""
user_data_format: RAW
networks:
- port: {get_resource: gw_float_port}
- port: {get_resource: gw_ovs_port }
gw_float_port:
type: "OS::Neutron::Port"
properties:
network_id: {get_resource: "private_net"}
gw_ovs_port:
type: "OS::Neutron::Port"
properties:
network_id: {get_resource: "private_net"}
floating_ip:
type: "OS::Neutron::FloatingIP"
properties:
floating_network_id: {get_param: "public_network"}
port_id: {get_resource: "gw_float_port"}
....
И когда я делаю ifconfig
внутри виртуальной машины я получаю следующее:
ens3 Link encap:Ethernet HWaddr fa:16:3e:76:98:82
inet addr:10.4.0.47 Bcast:10.4.0.255 Mask:255.255.255.0
....
ens4 Link encap:Ethernet HWaddr fa:16:3e:11:9f:ed
BROADCAST MULTICAST MTU:1500 Metric:1
....
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
....
то, что я хочу знать, как сопоставить сетевые карты из ifconfig
с сетевыми картами в шаблоне и контролем, какой из них получает плавающий IP?
внутри шаблона (автоматически при создании стека, без ручного манипулирования после его создания)
спасибо за вашу помощь заранее.
1 ответ
Плавающий IP-адрес установлен на порт gw_float_port(NIC)
Вы знаете это, потому что вы установили port_id на ресурсе FloatingIP
floating_ip:
type: "OS::Neutron::FloatingIP"
properties:
floating_network_id: {get_param: "public_network"}
port_id: {get_resource: "gw_float_port"}
это линия, которая выполняет ассоциацию
port_id: {get_resource: "gw_float_port"}