From 1025c61630b8f7e5424342b4f479a1f119e7828a Mon Sep 17 00:00:00 2001
From: QiLiang <liangqi1@huawei.com>
Date: Wed, 27 Jul 2016 01:03:17 +0800
Subject: Workaround for networking-odl pip package install

JIRA: COMPASS-444

Change-Id: I0df64759ae71e16ff8aafbe88b72fab74f5dc1b9
Signed-off-by: QiLiang <liangqi1@huawei.com>
---
 .../roles/odl_cluster/tasks/odl_controller.yml     | 267 +++++++++++++++++++++
 .../roles/odl_cluster/vars/Debian.yml              |   2 +
 2 files changed, 269 insertions(+)
 create mode 100755 deploy/adapters/ansible/openstack_mitaka_xenial/roles/odl_cluster/tasks/odl_controller.yml

(limited to 'deploy/adapters/ansible/openstack_mitaka_xenial/roles')

diff --git a/deploy/adapters/ansible/openstack_mitaka_xenial/roles/odl_cluster/tasks/odl_controller.yml b/deploy/adapters/ansible/openstack_mitaka_xenial/roles/odl_cluster/tasks/odl_controller.yml
new file mode 100755
index 00000000..73027d0e
--- /dev/null
+++ b/deploy/adapters/ansible/openstack_mitaka_xenial/roles/odl_cluster/tasks/odl_controller.yml
@@ -0,0 +1,267 @@
+##############################################################################
+# Copyright (c) 2016 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: install controller  packages
+  action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+  with_items: controller_packages | union(controller_packages_noarch)
+
+- name: get image http server
+  shell: awk -F'=' '/compass_server/ {print $2}' /etc/compass.conf
+  register: http_server
+
+- name: download oracle-jdk8 package file
+  get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/onos/{{ jdk8_pkg_name }}"  dest=/opt/{{ jdk8_pkg_name }}
+
+#"
+
+- name: upload install_jdk8 scripts
+  unarchive: src=install_jdk8.tar dest=/opt/
+
+- name: install install_jdk8 package
+  command: su -s /bin/sh -c "/opt/install_jdk8/install_jdk8.sh"
+
+#- name: install opendaylight packages
+#  apt: name={{ item }} state=present
+#  with_items:
+#    - openjdk-8-jdk
+
+#- name: create odl directories
+#  file:
+#    path: /opt/opendaylight-0.2.2
+#    state: "directory"
+#    group: root
+#    owner: root
+#    mode: 0755
+
+- name: create odl group
+  group: name=odl system=yes state=present
+
+- name: create odl user
+  user:
+    name: odl
+    group: odl
+    home: "{{ odl_home }}"
+    createhome: "yes"
+    system: "yes"
+    shell: "/bin/false"
+
+#- name: get image http server
+#  shell: awk -F'=' '/compass_server/ {print $2}' /etc/compass.conf
+#  register: http_server
+
+- name: download odl package
+  get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/odl/{{ odl_pkg_url }}"  dest=/opt/{{ odl_pkg_name }}
+
+# "
+
+#- name: download odl package
+#  get_url: url={{ odl_pkg_url }} dest=/opt/{{ odl_pkg_name }}
+
+# TODO: unarchive doesn't support strip-component at the moment
+# TODO: switch to use untar after support is added.
+- name: extract odl package
+#  unarchive: src=/opt/{{ odl_pkg_name }} dest={{ odl_home }} group=odl owner=odl mode=0775 copy=no
+  command: su -s /bin/sh -c "tar xzf /opt/{{ odl_pkg_name }} -C {{ odl_home }} --strip-components 1 --no-overwrite-dir -k --skip-old-files" odl
+#  notify:
+#    - restart odl service
+
+- name: opendaylight system file
+  template:
+    src: "{{ service_file.src }}"
+    dest: "{{ service_file.dst }}"
+    mode: 0755
+
+- name: set l3 fwd enable in custom.properties
+  template:
+    src: custom.properties
+    dest: "{{ odl_home }}/etc/custom.properties"
+    owner: odl
+    group: odl
+    mode: 0775
+  when: odl_l3_agent == "Enable"
+
+- name: create karaf config
+  template:
+    src: org.apache.karaf.features.cfg
+    dest: "{{ odl_home }}/etc/org.apache.karaf.features.cfg"
+    owner: odl
+    group: odl
+    mode: 0775
+
+- name: create tomcat config
+  template:
+    src: tomcat-server.xml
+    dest: "{{ odl_home }}/configuration/tomcat-server.xml"
+
+- name: download odl pip package
+  get_url: url="http://{{ http_server.stdout_lines[0] }}/pip/{{ networking_odl_pkg_name }}"  dest=/opt/{{ networking_odl_pkg_name }}
+
+#"
+
+- name: patch odl pip package
+  shell: |
+    cd /opt
+    tar xf /opt/{{ networking_odl_pkg_name }}
+    rm -rf /opt/{{ networking_odl_pkg_name }}
+    sed -i 's/^neutron-lib.*/neutron-lib/' networking-odl-2.0.0/requirements.txt
+    tar zcf /opt/{{ networking_odl_pkg_name }} networking-odl-2.0.0
+    rm -rf networking-odl-2.0.0
+    cd -
+
+- name: odl pip package install
+  shell: |
+    cd /opt
+    pip install {{ networking_odl_pkg_name }}
+    rm -rf {{ networking_odl_pkg_name }}
+    cd -
+
+#- name: restart odl service
+#  service: name=opendaylight state=started pattern="opendaylight"
+
+##########################################################################################################
+#################################   OpenDayLight Cluster Configuration   #################################
+##########################################################################################################
+#- name: create initial directory
+#  shell: >
+#    mkdir -p {{ odl_home }}/configuration/initial;
+
+#- name: create akka config
+#  template:
+#    src: akka.conf
+#    dest: "{{ odl_home }}/configuration/initial/akka.conf"
+#  notify:
+#    - restart odl service
+
+
+#- name: create module-shards config
+#  template:
+#    src: module-shards.conf
+#    dest: "{{ odl_home }}/configuration/initial/module-shards.conf"
+#  notify:
+#    - restart odl service
+
+#- name: copy Jolokia-OSGi config
+#  shell: >
+#    cp -r jolokia {{ odl_home }}system/org/;
+
+#- name: copy Jolokia-OSGi config
+#  template:
+#    src: jolokia
+#    dest: "{{ odl_home }}/system/org/"
+#  notify:
+#    - restart odl service
+
+
+#- name: mkdir Jolokia-OSGi directory
+#  shell: >
+#     mkdir -p {{ odl_home }}system/org/jolokia;
+#     mkdir -p {{ odl_home }}system/org/jolokia/jolokia-osgi;
+#     mkdir -p {{ odl_home }}system/org/jolokia/jolokia-osgi/1.1.5;
+
+
+#- name: copy Jolokia-OSGi config
+#  template: src={{ item.src }} dest={{ item.dest }}
+#  with_items:
+#      - src: "jolokia-osgi-1.1.5-features.xml"
+#        dest: "{{ odl_home }}/system/org/jolokia/jolokia-osgi/1.1.5/jolokia-osgi-1.1.5-features.xml"
+#      - src: "jolokia-osgi-1.1.5.jar.sha1"
+#        dest: "{{ odl_home }}/system/org/jolokia/jolokia-osgi/1.1.5/jolokia-osgi-1.1.5.jar.sha1"
+#      - src: "jolokia-osgi-1.1.5.jar"
+#        dest: "{{ odl_home }}/system/org/jolokia/jolokia-osgi/1.1.5/jolokia-osgi-1.1.5.jar"
+
+#- name: copy Jolokia-OSGi jar config
+#  copy: src=roles/odl_cluster/templates/jolokia-osgi-1.1.5.jar  dest="{{ odl_home }}/system/org/jolokia/jolokia-osgi/1.1.5/"
+
+- name: remove karaf data directory
+  shell: rm -rf {{ odl_home }}/data/*;
+
+#- name: chown OpenDaylight Directory and Files
+#  shell: >
+#    chown -R odl:odl "{{ odl_home }}";
+#    chown odl:odl "{{ service_file.dst }}";
+
+
+##########################################################################################################
+################################    OpenDayLight connect with OpenStack   ################################
+##########################################################################################################
+- name: turn off neutron-server neutron-plugins-openvswitch-agent Daemon on control node
+  shell: >
+    sed -i '/{{ service_ovs_agent_name }}/d' /opt/service ;
+    sed -i '/neutron-server/d' /opt/service;
+    sed -i '/keepalived/d' /opt/service;
+
+- name: turn off neutron-server on control node
+  service: name=neutron-server state=stopped
+
+- name: turn off keepalived on control node
+  service: name=keepalived state=stopped
+  when: ansible_os_family == "Debian"
+
+- name: chown opendaylight directory and files
+  shell: >
+    chown -R odl:odl "{{ odl_home }}";
+    chown odl:odl "{{ service_file.dst }}";
+
+- name: start opendaylight
+  service: name=opendaylight state=started
+  when: ansible_os_family == "Debian"
+
+- name: set opendaylight autostart
+  shell: chkconfig opendaylight on
+  when: ansible_os_family == "RedHat"
+
+- name: start opendaylight
+  shell: service opendaylight start
+  when: ansible_os_family == "RedHat"
+
+- name: check if opendaylight running
+  shell: netstat -lpen --tcp | grep java |  grep 6653; while [ $? -ne 0 ]; do sleep 10; netstat -lpen --tcp | grep java |  grep 6653; done
+
+- name: run openvswitch script
+  include: openvswitch.yml
+
+#- name: Configure Neutron1
+#  shell: >
+#    crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers opendaylight;
+#    crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vxlan;
+
+#- name: Create ML2 Configuration File
+#  template:
+#    src: ml2_conf.sh
+#    dest: "/opt/ml2_conf.sh"
+#    mode: 0777
+
+#- name: Execute ML2 Configuration File
+#  command: su -s /bin/sh -c "/opt/ml2_conf.sh;"
+
+
+- name: configure l2 configuration
+  shell: crudini --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge br-prv;
+  when: odl_l3_agent == "Disable"
+
+- name: configure l3 configuration
+  shell: crudini --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge br-ex;
+  when: odl_l3_agent == "Enable"
+
+- name: configure odl l3 driver
+  shell: crudini --set /etc/neutron/neutron.conf DEFAULT service_plugins networking_odl.l3.l3_odl.OpenDaylightL3RouterPlugin;
+  when: odl_l3_agent == "Enable"
+
+
+
+- name: drop and recreate neutron database
+  shell: mysql -e "drop database if exists neutron;";
+         mysql -e "create database neutron character set utf8;";
+         mysql -e "grant all on neutron.* to 'neutron'@'%' identified by '{{ NEUTRON_DBPASS }}';";
+         su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron;
+  when: inventory_hostname == haproxy_hosts.keys()[0]
+  tags:
+    - test_odl
+
diff --git a/deploy/adapters/ansible/openstack_mitaka_xenial/roles/odl_cluster/vars/Debian.yml b/deploy/adapters/ansible/openstack_mitaka_xenial/roles/odl_cluster/vars/Debian.yml
index a3d5dd02..d28defa4 100755
--- a/deploy/adapters/ansible/openstack_mitaka_xenial/roles/odl_cluster/vars/Debian.yml
+++ b/deploy/adapters/ansible/openstack_mitaka_xenial/roles/odl_cluster/vars/Debian.yml
@@ -21,3 +21,5 @@ service_ovs_agent_name: neutron-openvswitch-agent
 service_file:
    src: opendaylight.conf
    dst: /etc/init/opendaylight.conf
+
+networking_odl_pkg_name: networking-odl-2.0.0.tar.gz
-- 
cgit 1.2.3-korg