Install networking-sfc for non odl-sfc scenarios 43/47543/1
authorYifei Xue <xueyifei@huawei.com>
Tue, 31 Oct 2017 11:57:27 +0000 (19:57 +0800)
committerYifei Xue <xueyifei@huawei.com>
Tue, 21 Nov 2017 01:52:49 +0000 (01:52 +0000)
JIRA: -

Currently we only install networking-sfc for odl-sfc scenario,
however someone may use native neutron sfc functionality.So we
propose this patch to add installation of networking-sfc for non
odl scenarios.

Change-Id: I4527387626f0c14fb6af135c511d0fd783b8f624
Signed-off-by: Yifei Xue <xueyifei@huawei.com>
(cherry picked from commit 989d936c05c4f841efa383676473d2c6cc2cfba5)

deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
deploy/adapters/ansible/roles/post-osa/files/sfc.conf [new file with mode: 0755]
deploy/adapters/ansible/roles/post-osa/tasks/install_networking_sfc.yml [new file with mode: 0644]
deploy/adapters/ansible/roles/post-osa/tasks/main.yml
deploy/adapters/ansible/roles/post-osa/vars/main.yml [new file with mode: 0644]

index ef7128c..8d94438 100644 (file)
     - setup-openstack
     - sync-inventory
 
-- hosts: compute
+- hosts:
+    - compute
+    - utility
+    - neutron_server
   remote_user: root
   roles:
     - post-osa
diff --git a/deploy/adapters/ansible/roles/post-osa/files/sfc.conf b/deploy/adapters/ansible/roles/post-osa/files/sfc.conf
new file mode 100755 (executable)
index 0000000..ce42c9e
--- /dev/null
@@ -0,0 +1,9 @@
+[DEFAULT]
+
+service_plugins = router,metering,flow_classifier,sfc
+
+[sfc]
+drivers = ovs
+
+[flowclassifier]
+drivers = ovs
diff --git a/deploy/adapters/ansible/roles/post-osa/tasks/install_networking_sfc.yml b/deploy/adapters/ansible/roles/post-osa/tasks/install_networking_sfc.yml
new file mode 100644 (file)
index 0000000..fbed581
--- /dev/null
@@ -0,0 +1,73 @@
+---
+
+- name: install networking-sfc
+  pip:
+    name: networking-sfc
+    virtualenv: /openstack/venvs/neutron-15.1.4
+  when:
+    - inventory_hostname in groups['neutron_server']
+
+- name: install crudini
+  package:
+    name: crudini
+    state: latest
+  when:
+    - inventory_hostname in groups['neutron_server']
+
+- name: Install networking-sfc for CLI
+  pip:
+    name: networking-sfc
+  when:
+    - inventory_hostname in groups['utility']
+
+- name: turn off neutron-server on control node
+  service: name=neutron-server state=stopped
+  when: inventory_hostname in groups['neutron_server']
+
+- name: copy sfc.conf
+  copy:
+    src: "{{ sfc_plugins.src }}"
+    dest: "{{ sfc_plugins.dst }}"
+    mode: 0755
+  when: inventory_hostname in groups['neutron_server']
+
+- name: Configure SFC driver
+  shell: crudini --merge /etc/neutron/neutron.conf < /opt/sfc.conf
+  when: inventory_hostname in groups['neutron_server']
+
+- name: delete sfc.conf
+  shell: rm -rf {{ sfc_plugins.dst }}
+  when: inventory_hostname in groups['neutron_server']
+
+- name: Perform a Neutron DB online upgrade
+  command: |
+    /openstack/venvs/neutron-15.1.4/bin/neutron-db-manage
+                      --config-file /etc/neutron/neutron.conf
+                      --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
+                      upgrade --expand
+  become: "yes"
+  become_user: "neutron"
+  when: inventory_hostname in groups['neutron_server'][0]
+
+- name: Perform a Neutron DB offline upgrade
+  command: |
+    /openstack/venvs/neutron-15.1.4/bin/neutron-db-manage
+                      --config-file /etc/neutron/neutron.conf
+                      --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
+                      upgrade --contract
+  become: "yes"
+  become_user: "neutron"
+  when: inventory_hostname in groups['neutron_server'][0]
+
+- name: SFC DB upgrade
+  command: |
+    /openstack/venvs/neutron-15.1.4/bin/neutron-db-manage
+                      --subproject networking-sfc
+                      upgrade head
+  become: "yes"
+  become_user: "neutron"
+  when: inventory_hostname in groups['neutron_server'][0]
+
+- name: turn on neutron-server on control node
+  service: name=neutron-server state=started
+  when: inventory_hostname in groups['neutron_server']
index c48a5d1..f7f7a6c 100644 (file)
@@ -8,3 +8,10 @@
 ##############################################################################
 ---
 - include: "{{ ansible_distribution }}.yml"
+  when: inventory_hostname in groups['compute']
+
+# install networking-sfc for non odl scenarios
+- include: install_networking_sfc.yml
+  when:
+    - odl_sfc is not defined or odl_sfc == "Disable"
+    - inventory_hostname not in groups['compute']
diff --git a/deploy/adapters/ansible/roles/post-osa/vars/main.yml b/deploy/adapters/ansible/roles/post-osa/vars/main.yml
new file mode 100644 (file)
index 0000000..4feb975
--- /dev/null
@@ -0,0 +1,5 @@
+---
+
+sfc_plugins:
+  src: sfc.conf
+  dst: /opt/sfc.conf