summaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles/setup-openvswitch
diff options
context:
space:
mode:
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"