Add tacker support in compass4nfv for Fraser 35/51235/6
authorYifei Xue <xueyifei@huawei.com>
Sat, 27 Jan 2018 08:48:33 +0000 (16:48 +0800)
committerYifei Xue <xueyifei@huawei.com>
Tue, 30 Jan 2018 04:27:15 +0000 (12:27 +0800)
JIRA: COMPASS-577

1. Add tacker service into haproxy configuration file
2. Include tacker installation into setup-openstack.yml

Change-Id: I5a91766e034ec55af711029aac4ba9ed4a388db2
Signed-off-by: Yifei Xue <xueyifei@huawei.com>
deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
deploy/adapters/ansible/roles/config-osa/files/haproxy.yml
deploy/adapters/ansible/roles/config-osa/tasks/main.yml
deploy/adapters/ansible/roles/post-osa/tasks/install_networking_sfc.yml
deploy/adapters/ansible/roles/post-osa/tasks/main.yml
deploy/adapters/ansible/roles/post-osa/tasks/tacker_horizon.yml [new file with mode: 0644]
deploy/adapters/ansible/roles/post-osa/vars/main.yml

index 6e6502d..9a442da 100644 (file)
@@ -46,6 +46,7 @@
     - utility
     - neutron_server
     - ceilometer_all
+    - horizon_all
   remote_user: root
   roles:
     - post-osa
index 3085f6a..a0a09e4 100644 (file)
@@ -261,3 +261,14 @@ haproxy_default_services:
       haproxy_backend_options:
         - "httpchk GET /"
       haproxy_whitelist_networks: "{{ haproxy_octavia_whitelist_networks }}"
+
+  - service:
+      haproxy_service_name: tacker
+      haproxy_backend_nodes: "{{ groups['tacker_all'] | default([]) }}"
+      haproxy_ssl: "{{ haproxy_ssl }}"
+      haproxy_port: 9890
+      haproxy_balance_type: http
+      haproxy_backend_options:
+        - "forwardfor"
+        - "httpchk"
+        - "httplog"
index f9eef74..7fd4394 100755 (executable)
 - include: fix_pip_version.yml
 
 - include: fix_rescue.yml
+
+- name: include tacker in setup-openstack
+  lineinfile:
+    dest: /opt/openstack-ansible/playbooks/setup-openstack.yml
+    insertafter: "^- include: os-trove"
+    line: "- include: os-tacker-install.yml"
index fbed581..d5a04e7 100644 (file)
@@ -3,7 +3,7 @@
 - name: install networking-sfc
   pip:
     name: networking-sfc
-    virtualenv: /openstack/venvs/neutron-15.1.4
+    virtualenv: /openstack/venvs/neutron-{{ os_ver }}
   when:
     - inventory_hostname in groups['neutron_server']
 
   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']
+    - inventory_hostname not in groups['neutron_server']
 
 - name: turn off neutron-server on control node
   service: name=neutron-server state=stopped
   shell: crudini --merge /etc/neutron/neutron.conf < /opt/sfc.conf
   when: inventory_hostname in groups['neutron_server']
 
+- name: Configure SFC extension on compute nodes
+  shell: crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini \
+             agent extensions sfc;
+  when: inventory_hostname in groups['compute']
+
 - 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
+    /openstack/venvs/neutron-{{ os_ver }}/bin/neutron-db-manage
                       --config-file /etc/neutron/neutron.conf
                       --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
                       upgrade --expand
@@ -51,7 +54,7 @@
 
 - name: Perform a Neutron DB offline upgrade
   command: |
-    /openstack/venvs/neutron-15.1.4/bin/neutron-db-manage
+    /openstack/venvs/neutron-{{ os_ver }}/bin/neutron-db-manage
                       --config-file /etc/neutron/neutron.conf
                       --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
                       upgrade --contract
@@ -61,7 +64,7 @@
 
 - name: SFC DB upgrade
   command: |
-    /openstack/venvs/neutron-15.1.4/bin/neutron-db-manage
+    /openstack/venvs/neutron-{{ os_ver }}/bin/neutron-db-manage
                       --subproject networking-sfc
                       upgrade head
   become: "yes"
index 205f339..fed3842 100644 (file)
     - ansible_distribution == 'Ubuntu'
 
 # 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']
-#   when: ansible_distribution == 'Ubuntu'
+- include: install_networking_sfc.yml
+  when:
+    - opendaylight is not defined or opendaylight == "Disable"
+    - inventory_hostname not in groups['horizon_all']
 
 - include: "{{ ansible_os_family }}.yml"
   when:
@@ -27,3 +26,6 @@
 - include: ceilometer-upgrade.yml
   when:
     - inventory_hostname in groups['ceilometer_all']
+
+- include: tacker_horizon.yml
+  when: inventory_hostname in groups['horizon_all']
diff --git a/deploy/adapters/ansible/roles/post-osa/tasks/tacker_horizon.yml b/deploy/adapters/ansible/roles/post-osa/tasks/tacker_horizon.yml
new file mode 100644 (file)
index 0000000..2c1d2d8
--- /dev/null
@@ -0,0 +1,33 @@
+---
+
+- name: remove tacker-horizon directory
+  file:
+    path: "{{ tacker_horizon_dir }}"
+    state: absent
+
+- name: get tacker horizon (online)
+  git:
+    repo: "{{ tacker_horizon_repo }}"
+    dest: "{{ tacker_horizon_dir }}"
+    version: "{{ tacker_horizon_branch }}"
+  when: offline_deployment is defined and offline_deployment == "Disable"
+
+- name: copy installation script (offline)
+  get_url:
+    url: "http://{{ offline_repo_ip }}:{{ offline_repo_port }}/tacker-horizon.tar.gz"
+    dest: "/opt/"
+  when: offline_deployment is defined and offline_deployment == "Enable"
+
+- name: untar tacker-horizon tarball
+  command: su -s /bin/sh -c "tar xzf /opt/tacker-horizon.tar.gz -C /opt/"
+  when: offline_deployment is defined and offline_deployment == "Enable"
+
+- name: install tacker-horizon
+  shell: |
+    cd /opt/tacker-horizon/;
+    pip install -r requirements.txt;
+    sleep 30;
+    python setup.py install;
+    cp tacker_horizon/enabled/* \
+       {{ tacker_horizon_enable_path }}/;
+    service apache2 restart
index 1272815..95f5153 100644 (file)
@@ -1,5 +1,17 @@
 ---
 
+os_ver: 16.0.5
+os_name: pike
+
+# yamllint disable rule:line-length
+tacker_horizon_repo: https://github.com/openstack/tacker-horizon.git
+tacker_horizon_dir: /opt/tacker-horizon
+tacker_horizon_branch: "stable/{{ os_name }}"
+openstack_release: "{{ os_ver }}"
+tacker_horizon_venv: "/openstack/venvs/horizon-{{ openstack_release }}"
+tacker_horizon_enable_path: "{{ tacker_horizon_venv }}/lib/python2.7/site-packages/openstack_dashboard/enabled"
+# yamllint enable rule:line-length
+
 sfc_plugins:
   src: sfc.conf
   dst: /opt/sfc.conf