mirror of
https://github.com/clearlinux/clearstack.git
synced 2026-06-15 18:46:35 +00:00
Automatically find the network interface assosiated to an ip address
This commit is contained in:
@@ -185,6 +185,17 @@ def get_ips():
|
||||
return ips
|
||||
|
||||
|
||||
def get_nic(ip):
|
||||
for iface in netifaces.interfaces():
|
||||
try:
|
||||
for addr in netifaces.ifaddresses(iface)[netifaces.AF_INET]:
|
||||
if addr['addr'] == ip:
|
||||
return iface
|
||||
except:
|
||||
pass
|
||||
return None
|
||||
|
||||
|
||||
def get_ip():
|
||||
interface = get_net_interface()
|
||||
return netifaces.ifaddresses(interface)[netifaces.AF_INET][0]['addr']
|
||||
|
||||
@@ -34,7 +34,6 @@ tenant_network_types = CONF['CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES']
|
||||
mechanism_drivers = CONF['CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS']
|
||||
vni_ranges = CONF['CONFIG_NEUTRON_ML2_TUNNEL_ID_RANGES']
|
||||
type_drivers = CONF['CONFIG_NEUTRON_ML2_TYPE_DRIVERS']
|
||||
bridge_mappings = CONF['CONFIG_NEUTRON_LINUXBRIDGE_IFACES']
|
||||
flat_networks = CONF['CONFIG_NEUTRON_ML2_FLAT_NETWORKS']
|
||||
|
||||
|
||||
@@ -83,10 +82,10 @@ class Neutron(OpenStackService):
|
||||
util.link_file('/etc/neutron/plugins/ml2/ml2_conf.ini',
|
||||
'/etc/neutron/plugin.ini')
|
||||
|
||||
def config_linux_bridge_agent(self, local_ip):
|
||||
def config_linux_bridge_agent(self, local_ip, local_nic):
|
||||
config = \
|
||||
"[linux_bridge]\n" + \
|
||||
"physical_interface_mappings = %s\n" % bridge_mappings + \
|
||||
"physical_interface_mappings = public:%s\n" % local_nic + \
|
||||
"[vxlan]\n" + \
|
||||
"enable_vxlan = True\n" + \
|
||||
"local_ip = %s\n" % local_ip + \
|
||||
|
||||
@@ -79,12 +79,6 @@ def init_config():
|
||||
# "CONFIG_NEUTRON_OVS_BRIDGE_IFACES",
|
||||
# "br-ex:%s" % util.get_net_interface())
|
||||
# ],
|
||||
"NEUTRON_LINUXBRIDGE_AGENT": [
|
||||
Argument("neutron-linuxbridge-physical-interface-mappings",
|
||||
"Colon separated linuxbridge <bridge>:<interface> pairs",
|
||||
"CONFIG_NEUTRON_LINUXBRIDGE_IFACES",
|
||||
"public:%s" % util.get_net_interface())
|
||||
],
|
||||
"NEUTRON_ML2_PLUGIN": [
|
||||
Argument("neutron-ml2-type-drivers",
|
||||
"Comma-separated list of network-type driver entry "
|
||||
|
||||
@@ -25,6 +25,7 @@ neutron = Neutron.get()
|
||||
config_file = "/etc/neutron/neutron.conf"
|
||||
ip_list = CONF['CONFIG_CONTROLLER_HOST'].split(',')
|
||||
local_ip = util.find_my_ip_from_config(ip_list)
|
||||
local_nic = util.get_nic(local_ip)
|
||||
|
||||
# Install neutron controller
|
||||
neutron.install()
|
||||
@@ -40,7 +41,7 @@ neutron.config_auth(config_file)
|
||||
|
||||
neutron.config_nova(config_file)
|
||||
neutron.config_ml2_plugin()
|
||||
neutron.config_linux_bridge_agent(local_ip)
|
||||
neutron.config_linux_bridge_agent(local_ip, local_nic)
|
||||
neutron.config_l3_agent("/etc/neutron/l3_agent.ini")
|
||||
neutron.config_dhcp_agent("/etc/neutron/dhcp_agent.ini")
|
||||
neutron.config_metadata_agent("/etc/neutron/metadata_agent.ini")
|
||||
|
||||
@@ -26,12 +26,13 @@ config_file = "/etc/neutron/neutron.conf"
|
||||
services = ['nova-compute', 'neutron-linuxbridge-agent']
|
||||
ip_list = CONF['CONFIG_COMPUTE_HOSTS'].split(',')
|
||||
local_ip = util.find_my_ip_from_config(ip_list)
|
||||
local_nic = util.get_nic(local_ip)
|
||||
|
||||
neutron.install()
|
||||
neutron.config_debug(config_file)
|
||||
neutron.config_rabbitmq(config_file)
|
||||
neutron.config_auth(config_file)
|
||||
neutron.config_linux_bridge_agent(local_ip)
|
||||
neutron.config_linux_bridge_agent(local_ip, local_nic)
|
||||
neutron.config_neutron_on_nova('/etc/nova/nova.conf')
|
||||
|
||||
if util.str2bool(CONF['CONFIG_CEILOMETER_INSTALL']):
|
||||
|
||||
Reference in New Issue
Block a user