diff options
author | Pedro Alvarez <pedro.alvarez@codethink.co.uk> | 2015-04-02 16:57:15 +0000 |
---|---|---|
committer | Pedro Alvarez <pedro.alvarez@codethink.co.uk> | 2015-04-02 16:57:15 +0000 |
commit | b356f4478897d7399338e8931967f74d3151c5b3 (patch) | |
tree | 007a96bb715fd31ca51582f7b0da91e8fbef5786 /openstack/usr | |
parent | 46adf0a0d267a09e7145f0a06271b299a489b0c3 (diff) | |
download | definitions-b356f4478897d7399338e8931967f74d3151c5b3.tar.gz |
Start moving network configuration before networkd
Diffstat (limited to 'openstack/usr')
-rw-r--r-- | openstack/usr/share/openstack/network.yml | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/openstack/usr/share/openstack/network.yml b/openstack/usr/share/openstack/network.yml new file mode 100644 index 00000000..8cb35e29 --- /dev/null +++ b/openstack/usr/share/openstack/network.yml @@ -0,0 +1,148 @@ +--- +- hosts: localhost + tasks: +# Create the bridges to use the External network mapped +# This configuration is for 1 node and it was taken from: +# 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/ + + - 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 + + - set_fact: + ETH_MAC_ADDRESS: "{{ ansible_default_ipv4.macaddress }}" + ETH_IP_ADDRESS: "{{ ansible_default_ipv4.address }}" + when: ETH_INTERFACE != "br-eth0" + +# 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 + 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 + with_items: + - br-eth1 + - br-ex + - eth1-br-proxy + - 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 \ +# -- add-port br-eth0 $eth_dev \ +# -- set bridge br-eth0 other-config:hwaddr=$eth_mac +# + + + - 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 + 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 \ +# -- set interface eth1-br-proxy type=patch options:peer=proxy-br-eth1 \ +# -- add-port br-eth0 proxy-br-eth1 \ +# -- set interface proxy-br-eth1 type=patch options:peer=eth1-br-proxy \ +# -- add-br br-ex \ +# -- add-port br-ex ex-br-proxy \ +# -- set interface ex-br-proxy type=patch options:peer=proxy-br-ex \ +# -- add-port br-eth0 proxy-br-ex \ +# -- set interface proxy-br-ex type=patch options:peer=ex-br-proxy + + + - openvswitch_bridge: + bridge: br-eth1 + state: present + - openvswitch_port: + bridge: br-eth1 + port: eth1-br-proxy + state: present + - shell: ovs-vsctl set interface eth1-br-proxy type=patch options:peer=proxy-br-eth1 + - openvswitch_port: + bridge: br-eth0 + port: proxy-br-eth1 + state: present + - shell: ovs-vsctl set interface proxy-br-eth1 type=patch options:peer=eth1-br-proxy + - openvswitch_bridge: + bridge: br-ex + state: present + - openvswitch_port: + bridge: br-ex + port: ex-br-proxy + state: present + - shell: ovs-vsctl set interface ex-br-proxy type=patch options:peer=proxy-br-ex + - openvswitch_port: + bridge: br-eth0 + 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 + |