summaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles/setup-openvswitch
diff options
context:
space:
mode:
authorHarry Huang <huangxiangyu5@huawei.com>2017-08-23 15:05:02 +0800
committerHarry Huang <huangxiangyu5@huawei.com>2017-09-01 16:31:01 +0800
commit3bc3a8828c3ceefedd08e1767ae6e3bf2df9ac22 (patch)
tree7413e99b2d9ddbadc782a5e9f68a6f1ba35570b1 /deploy/adapters/ansible/roles/setup-openvswitch
parent292985dab007c3ee1c3481c985871a3483d9f7bc (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')
-rw-r--r--deploy/adapters/ansible/roles/setup-openvswitch/handlers/main.yml12
-rw-r--r--deploy/adapters/ansible/roles/setup-openvswitch/tasks/compute.yml65
-rw-r--r--deploy/adapters/ansible/roles/setup-openvswitch/tasks/controller.yml49
-rw-r--r--deploy/adapters/ansible/roles/setup-openvswitch/tasks/main.yml22
-rw-r--r--deploy/adapters/ansible/roles/setup-openvswitch/vars/main.yml12
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"