From bfe8db7a61be82da2ccd8de21588e1dabc5a0e9d Mon Sep 17 00:00:00 2001 From: Pedro Alvarez Date: Fri, 10 Apr 2015 17:13:54 +0000 Subject: openstack-network: Add possibility of specifying external interface --- openstack-network.configure | 12 ++++++++++++ openstack/usr/share/openstack/network.yml | 14 ++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/openstack-network.configure b/openstack-network.configure index 7f2a08cc..f776f058 100644 --- a/openstack-network.configure +++ b/openstack-network.configure @@ -24,3 +24,15 @@ ln -sf "/usr/lib/systemd/system/openvswitch-setup.service" \ ln -sf "/usr/lib/systemd/system/openstack-network-setup.service" \ "$ROOT/etc/systemd/system/multi-user.target.wants/openstack-network-setup.service" + +python <<'EOF' >"$ROOT/etc/openstack/network.conf" +import os, sys, yaml + +network_configuration = {} + +optional_keys = ('EXTERNAL_INTERFACE',) + +network_configuration.update((k, os.environ[k]) for k in optional_keys if k in os.environ) + +yaml.dump(network_configuration, sys.stdout, default_flow_style=False) +EOF diff --git a/openstack/usr/share/openstack/network.yml b/openstack/usr/share/openstack/network.yml index 4179145b..955a617b 100644 --- a/openstack/usr/share/openstack/network.yml +++ b/openstack/usr/share/openstack/network.yml @@ -1,5 +1,7 @@ --- - hosts: localhost + vars_files: + - /etc/openstack/network.conf tasks: # Create the bridges to use the External network mapped # This configuration is for 1 node and it was taken from: @@ -13,14 +15,22 @@ # Abort if there number of interfaces != 1 - fail: msg: More than one, or none network interfaces found. - when: number_interfaces.stdout != "1" + when: EXTERNAL_INTERFACE is not defined and number_interfaces.stdout != "1" - shell: ls /sys/class/net | grep ^e.* register: interface_name + when: EXTERNAL_INTERFACE is not defined - set_fact: ETH_INTERFACE: "{{ interface_name.stdout }}" - ETH_MAC_ADDRESS: "{{ hostvars['localhost']['ansible_' + interface_name.stdout]['macaddress'] }}" + when: EXTERNAL_INTERFACE is not defined + + - set_fact: + ETH_INTERFACE: "{{ EXTERNAL_INTERFACE }}" + when: EXTERNAL_INTERFACE is defined + + - set_fact: + ETH_MAC_ADDRESS: "{{ hostvars['localhost']['ansible_' + ETH_INTERFACE]['macaddress'] }}" - name: Create the /run/systemd/network file: -- cgit v1.2.1