aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml5
-rwxr-xr-xdeploy/adapters/ansible/roles/post-osa/files/sfc.conf9
-rw-r--r--deploy/adapters/ansible/roles/post-osa/tasks/install_networking_sfc.yml73
-rw-r--r--deploy/adapters/ansible/roles/post-osa/tasks/main.yml7
-rw-r--r--deploy/adapters/ansible/roles/post-osa/vars/main.yml5
5 files changed, 98 insertions, 1 deletions
diff --git a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
index ef7128c5..8d944387 100644
--- a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
+++ b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
@@ -41,7 +41,10 @@
- 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
index 00000000..ce42c9e1
--- /dev/null
+++ b/deploy/adapters/ansible/roles/post-osa/files/sfc.conf
@@ -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
index 00000000..fbed5815
--- /dev/null
+++ b/deploy/adapters/ansible/roles/post-osa/tasks/install_networking_sfc.yml
@@ -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']
diff --git a/deploy/adapters/ansible/roles/post-osa/tasks/main.yml b/deploy/adapters/ansible/roles/post-osa/tasks/main.yml
index c48a5d1a..f7f7a6cc 100644
--- a/deploy/adapters/ansible/roles/post-osa/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/post-osa/tasks/main.yml
@@ -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
index 00000000..4feb9756
--- /dev/null
+++ b/deploy/adapters/ansible/roles/post-osa/vars/main.yml
@@ -0,0 +1,5 @@
+---
+
+sfc_plugins:
+ src: sfc.conf
+ dst: /opt/sfc.conf