From 467adc6c991fc05714a16695048f0ead25e94e6f Mon Sep 17 00:00:00 2001 From: Pedro Alvarez Date: Tue, 7 Apr 2015 13:03:22 +0000 Subject: continue moving network configuration to network.yml --- openstack/usr/share/openstack/network.yml | 75 +++++++++---------------------- 1 file changed, 20 insertions(+), 55 deletions(-) diff --git a/openstack/usr/share/openstack/network.yml b/openstack/usr/share/openstack/network.yml index 8cb35e29..4ea20672 100644 --- a/openstack/usr/share/openstack/network.yml +++ b/openstack/usr/share/openstack/network.yml @@ -6,44 +6,39 @@ # https://fosskb.wordpress.com/2014/10/18/openstack-juno-on-ubuntu-14-10/ # and https://fosskb.wordpress.com/2014/06/10/managing-openstack-internaldataexternal-network-in-one-interface/ +# Count number of network interfaces (interfaces starting with 'e') - shell: ls /sys/class/net | grep ^e.* | wc -l register: number_interfaces - - set_fact: - ETH_INTERFACE: "{{ ansible_default_ipv4.interface }}" - when: ansible_default_ipv4.interface - - set_fact: - ETH_INTERFACE: br-eth0 - when: not ansible_default_ipv4.interface +# Abort if there number of interfaces != 1 + - fail: + msg: More than one, or none network interfaces found. + when: number_interfaces.stdout != "1" + + - shell: ls /sys/class/net | grep ^e.* + register: interface_name - set_fact: - ETH_MAC_ADDRESS: "{{ ansible_default_ipv4.macaddress }}" - ETH_IP_ADDRESS: "{{ ansible_default_ipv4.address }}" - when: ETH_INTERFACE != "br-eth0" + ETH_INTERFACE: "{{ interface_name.stdout }}" + ETH_MAC_ADDRESS: "{{ hostvars['localhost']['ansible_'] + interface_name.stdout }}" + + - name: Create the /run/systemd/network + file: + path: /run/systemd/network + state: directory -# if is not br-eth0 - name: Disable dhcp on the bound physical interface template: src: /usr/share/openstack/extras/00-disable-device.network - dest: /etc/systemd/network/00-disable-{{ item }}-config.network + dest: /run/systemd/network/00-disable-{{ item }}-config.network with_items: - "{{ ETH_INTERFACE }}" - when: ETH_INTERFACE != "br-eth0" -# if is not br-eth0 - - name: > - Deallocate ip address for external interface so we don't try to route - connections out of an interface that not longer works. Run only when - we are not connecting through the br-eth0 bridge - shell: ip addr del {{ ETH_IP_ADDRESS }} dev {{ ETH_INTERFACE }} - when: ETH_INTERFACE != "br-eth0" - -# If is not br-eth0 - name: Disable dhcp on all the internal interfaces template: src: /usr/share/openstack/extras/00-disable-device.network - dest: /etc/systemd/network/00-disable-{{ item }}-config.network + dest: /run/systemd/network/00-disable-{{ item }}-config.network with_items: - br-eth1 - br-ex @@ -51,13 +46,6 @@ - proxy-br-eth1 - proxy-br-ex - ovs-system - register: internal_dhcp_disabled - - - name: Restart networkd so it understands to not bring up the interfaces disabled - service: - name: systemd-networkd.service - state: restarted - when: internal_dhcp_disabled|changed #ovs-vsctl \ # -- add-br br-eth0 \ @@ -69,28 +57,21 @@ - openvswitch_bridge: bridge: br-eth0 state: present -# if is not br-eth0 + - openvswitch_port: bridge: br-eth0 port: "{{ ETH_INTERFACE }}" state: present - when: ETH_INTERFACE != "br-eth0" -# if is not br-eth0 + - shell: ovs-vsctl set bridge br-eth0 other-config:hwaddr={{ ETH_MAC_ADDRESS }} - when: ETH_INTERFACE != "br-eth0" - name: Enable dhcp on the Open vSwitch device that replaces our external interface template: src: /usr/share/openstack/extras/10-device-dhcp.network - dest: /etc/systemd/network/10-{{ item }}-dhcp.network + dest: /run/systemd/network/10-{{ item }}-dhcp.network with_items: - br-eth0 - - name: Restart networkd again so it will DHCP in the Open vSwitch interface - service: - name: systemd-networkd.service - state: restarted - #ovs-vsctl \ # -- add-br br-eth1 \ # -- add-port br-eth1 eth1-br-proxy \ @@ -130,19 +111,3 @@ port: proxy-br-ex state: present - shell: ovs-vsctl set interface proxy-br-ex type=patch options:peer=ex-br-proxy - - -## SERVICES - - name: Enable and start openstack-neutron services - service: - name: "{{ item }}" - enabled: yes - state: started - with_items: - - openstack-neutron-ovs-cleanup.service - - openstack-neutron-server.service - - openstack-neutron-dhcp-agent.service - - openstack-neutron-l3-agent.service - - openstack-neutron-metadata-agent.service - - openstack-neutron-plugin-openvswitch-agent.service - -- cgit v1.2.1