diff options
author | Harry Huang <huangxiangyu5@huawei.com> | 2017-08-23 15:05:02 +0800 |
---|---|---|
committer | Harry Huang <huangxiangyu5@huawei.com> | 2017-09-01 16:31:01 +0800 |
commit | 3bc3a8828c3ceefedd08e1767ae6e3bf2df9ac22 (patch) | |
tree | 7413e99b2d9ddbadc782a5e9f68a6f1ba35570b1 /deploy/adapters/ansible/roles/setup-openvswitch | |
parent | 292985dab007c3ee1c3481c985871a3483d9f7bc (diff) |
Support multiple physnet mapping
JIRA: COMPASS-559
1. support multiple mapping in provider_net_mappings
of network.yml and create corresponding ovs bridges
2. support seperate config in sys_intf_mappings
of network.yml
3. remove linux bridges in compute nodes for ovs
port binding convenience
4. support openstack vlan tenant network
5. modify odl and odl_sfc roles to use configurable
provider mapping
6. remove some hard coding
Change-Id: Ib57484ce60d029f89c647fd5baf2c7af37c85d0b
Signed-off-by: Harry Huang <huangxiangyu5@huawei.com>
Diffstat (limited to 'deploy/adapters/ansible/roles/setup-openvswitch')
5 files changed, 150 insertions, 10 deletions
diff --git a/deploy/adapters/ansible/roles/setup-openvswitch/handlers/main.yml b/deploy/adapters/ansible/roles/setup-openvswitch/handlers/main.yml new file mode 100644 index 00000000..fb7814b7 --- /dev/null +++ b/deploy/adapters/ansible/roles/setup-openvswitch/handlers/main.yml @@ -0,0 +1,12 @@ +############################################################################ +# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################ +--- +- name: restart neutron-openvswitch-agent + service: + name: neutron-openvswitch-agent + state: restarted diff --git a/deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml new file mode 100644 index 00000000..62edd34b --- /dev/null +++ b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml @@ -0,0 +1,65 @@ +############################################################################# +# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################# +--- +- name: stop neutron-openvswitch-agent + service: + name: neutron-openvswitch-agent + state: stopped + +- name: remove tunnel_types when vlan + lineinfile: + dest: /etc/neutron/plugins/ml2/openvswitch_agent.ini + state: absent + regexp: '^tunnel_types' + when: + - tenant_net_info["type"] == "vlan" + notify: + - restart neutron-openvswitch-agent + +- name: fix mapping in compute + shell: | + {% set compute_mappings = [] %} + {% for key, value in compu_prv_mappings.iteritems() %} + {% set mapping = key + ":" + value["bridge"] %} + {% set _ = compute_mappings.append(mapping) %} + {% endfor %} + {% if compute_mappings | length != 0 %} + sed -i "s/^\(bridge_mappings\).*/\1 = {{ ','.join(compute_mappings) }}/g" \ + /etc/neutron/plugins/ml2/openvswitch_agent.ini + {% else %} + sed -i "/bridge_mappings/d" /etc/neutron/plugins/ml2/openvswitch_agent.ini + {% endif %} + notify: + - restart neutron-openvswitch-agent + +- name: create compute bridges + openvswitch_bridge: + bridge: "{{ item['name'] }}" + state: present + with_items: + - "{{ provider_net_mappings }}" + when: + - compute in item["role"] + notify: + - restart neutron-openvswitch-agent + +- name: create compute bridge ports + openvswitch_port: + bridge: "{{ item['name'] }}" + port: "{{ item['interface'] }}" + state: present + with_items: + - "{{ provider_net_mappings }}" + when: + - compute in item["role"] + +- name: stop neutron-openvswitch-agent + service: + name: neutron-openvswitch-agent + state: started diff --git a/deploy/adapters/ansible/roles/setup-openvswitch/tasks/controller.yml b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/controller.yml new file mode 100644 index 00000000..258a39e2 --- /dev/null +++ b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/controller.yml @@ -0,0 +1,49 @@ +############################################################################# +# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################# +--- +- name: stop neutron-openvswitch-agent + service: + name: neutron-openvswitch-agent + state: stopped + +- name: remove tunnel_types when vlan + lineinfile: + dest: /etc/neutron/plugins/ml2/openvswitch_agent.ini + state: absent + regexp: '^tunnel_types' + when: + - tenant_net_info["type"] == "vlan" + notify: + - restart neutron-openvswitch-agent + +- name: create controller bridges + openvswitch_bridge: + bridge: "{{ item['name'] }}" + state: present + with_items: + - "{{ provider_net_mappings }}" + when: + - controller in item["role"] + notify: + - restart neutron-openvswitch-agent + +- name: create controller bridge ports + openvswitch_port: + bridge: "{{ item['name'] }}" + port: "{{ item['interface'] }}" + state: present + with_items: + - "{{ provider_net_mappings }}" + when: + - controller in item["role"] + +- name: stop neutron-openvswitch-agent + service: + name: neutron-openvswitch-agent + state: started diff --git a/deploy/adapters/ansible/roles/setup-openvswitch/tasks/main.yml b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/main.yml index a424f974..87e508ca 100644 --- a/deploy/adapters/ansible/roles/setup-openvswitch/tasks/main.yml +++ b/deploy/adapters/ansible/roles/setup-openvswitch/tasks/main.yml @@ -1,16 +1,18 @@ -############################################################################## -# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others. +############################################################################# +# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## +############################################################################# --- -- name: setup openvswitch - shell: "export ANSIBLE_LOG_PATH=/var/ansible/run/openstack_ocata-opnfv2/ansible.log; \ - cd /opt/openstack-ansible/playbooks; \ - openstack-ansible setup-ovs.yml \ - | tee -a /var/log/osa/ovs.log > /dev/null" - when: NEUTRON_MECHANISM_DRIVERS[0] == "openvswitch" or - NEUTRON_MECHANISM_DRIVERS[0] == "opendaylight" +- include: controller.yml + when: + - inventory_hostname not in groups['nova_compute'] + - NEUTRON_MECHANISM_DRIVERS[0] == "openvswitch" or "opendaylight" + +- include: compute.yml + when: + - inventory_hostname in groups['nova_compute'] + - NEUTRON_MECHANISM_DRIVERS[0] == "openvswitch" or "opendaylight" diff --git a/deploy/adapters/ansible/roles/setup-openvswitch/vars/main.yml b/deploy/adapters/ansible/roles/setup-openvswitch/vars/main.yml new file mode 100644 index 00000000..69ce5ee9 --- /dev/null +++ b/deploy/adapters/ansible/roles/setup-openvswitch/vars/main.yml @@ -0,0 +1,12 @@ +############################################################################## +## Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +## +## All rights reserved. This program and the accompanying materials +## are made available under the terms of the Apache License, Version 2.0 +## which accompanies this distribution, and is available at +## http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +--- +controller: "controller" + +compute: "compute" |