如何将浮动IP与Heat的特定接口相关联

时间:2018-07-20 19:29:55

标签: openstack orchestration openstack-heat floating-ip

我正在尝试使用openstack HEAT创建堆栈,其中一个VM(NOVA::Server)需要具有 2个网络接口

因此在我的热模板中,我创建了2个端口,并将它们与NOVA::Server关联,并为其中一个gw_float_port提供了浮动IP

....
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"}
....

当我在VM内执行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中的NIC与模板中的NIC映射并控制哪个人获得浮动IP?

在模板内(在创建堆栈时自动创建,创建后无需手动操作

感谢您的提前帮助。

1 个答案:

答案 0 :(得分:0)

浮动IP设置为gw_float_port(NIC)端口

您知道这一点是因为您在FloatingIP资源上设置了port_id

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"}