Как связать плавающий 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"}
Другие вопросы по тегам