From ab9c9cbd1c96611c5cbe56260a73524186bf72f1 Mon Sep 17 00:00:00 2001 From: "chenshuai@huawei.com" Date: Sun, 20 Sep 2015 12:45:08 +0800 Subject: [PATCH] Write ONOS ansible script for Ubuntu14.04 JIRA: COMPASS-54 Change-Id: Icb0f0023681a0407bb987757171f72d70c1360f6 Signed-off-by: chenshuai@huawei.com --- .../ansible/openstack/HA-ansible-multinodes.yml | 6 + .../ansible/roles/onos/files/install_jdk8.tar | Bin 0 -> 4608 bytes .../ansible/roles/onos/files/networking-onos.tar | Bin 0 -> 20480 bytes .../adapters/ansible/roles/onos/handlers/main.yml | 3 + deploy/adapters/ansible/roles/onos/tasks/main.yml | 11 ++ .../ansible/roles/onos/tasks/onos_controller.yml | 145 +++++++++++++++++++++ .../ansible/roles/onos/tasks/openvswitch.yml | 34 +++++ .../ansible/roles/onos/templates/cluster.json | 10 ++ .../ansible/roles/onos/templates/ml2_conf.sh | 7 + .../ansible/roles/onos/templates/tablets.json | 63 +++++++++ deploy/adapters/ansible/roles/onos/vars/Debian.yml | 6 + deploy/adapters/ansible/roles/onos/vars/RedHat.yml | 6 + deploy/adapters/ansible/roles/onos/vars/main.yml | 6 + .../roles/onos_cluster/files/install_jdk8.tar | Bin 0 -> 4608 bytes .../roles/onos_cluster/files/networking-onos.tar | Bin 0 -> 20480 bytes .../ansible/roles/onos_cluster/handlers/main.yml | 3 + .../ansible/roles/onos_cluster/tasks/main.yml | 11 ++ .../roles/onos_cluster/tasks/onos_controller.yml | 145 +++++++++++++++++++++ .../roles/onos_cluster/tasks/openvswitch.yml | 34 +++++ .../roles/onos_cluster/templates/cluster.json | 10 ++ .../roles/onos_cluster/templates/ml2_conf.sh | 7 + .../roles/onos_cluster/templates/tablets.json | 63 +++++++++ .../ansible/roles/onos_cluster/vars/Debian.yml | 6 + .../ansible/roles/onos_cluster/vars/RedHat.yml | 6 + .../ansible/roles/onos_cluster/vars/main.yml | 6 + 25 files changed, 588 insertions(+) create mode 100755 deploy/adapters/ansible/roles/onos/files/install_jdk8.tar create mode 100755 deploy/adapters/ansible/roles/onos/files/networking-onos.tar create mode 100755 deploy/adapters/ansible/roles/onos/handlers/main.yml create mode 100755 deploy/adapters/ansible/roles/onos/tasks/main.yml create mode 100755 deploy/adapters/ansible/roles/onos/tasks/onos_controller.yml create mode 100755 deploy/adapters/ansible/roles/onos/tasks/openvswitch.yml create mode 100755 deploy/adapters/ansible/roles/onos/templates/cluster.json create mode 100755 deploy/adapters/ansible/roles/onos/templates/ml2_conf.sh create mode 100755 deploy/adapters/ansible/roles/onos/templates/tablets.json create mode 100755 deploy/adapters/ansible/roles/onos/vars/Debian.yml create mode 100755 deploy/adapters/ansible/roles/onos/vars/RedHat.yml create mode 100755 deploy/adapters/ansible/roles/onos/vars/main.yml create mode 100755 deploy/adapters/ansible/roles/onos_cluster/files/install_jdk8.tar create mode 100755 deploy/adapters/ansible/roles/onos_cluster/files/networking-onos.tar create mode 100755 deploy/adapters/ansible/roles/onos_cluster/handlers/main.yml create mode 100755 deploy/adapters/ansible/roles/onos_cluster/tasks/main.yml create mode 100755 deploy/adapters/ansible/roles/onos_cluster/tasks/onos_controller.yml create mode 100755 deploy/adapters/ansible/roles/onos_cluster/tasks/openvswitch.yml create mode 100755 deploy/adapters/ansible/roles/onos_cluster/templates/cluster.json create mode 100755 deploy/adapters/ansible/roles/onos_cluster/templates/ml2_conf.sh create mode 100755 deploy/adapters/ansible/roles/onos_cluster/templates/tablets.json create mode 100755 deploy/adapters/ansible/roles/onos_cluster/vars/Debian.yml create mode 100755 deploy/adapters/ansible/roles/onos_cluster/vars/RedHat.yml create mode 100755 deploy/adapters/ansible/roles/onos_cluster/vars/main.yml diff --git a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml index 692650b5..bd1499c9 100644 --- a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml +++ b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml @@ -42,6 +42,12 @@ roles: - odl_cluster +- hosts: all + remote_user: root + sudo: True + roles: + - onos_cluster + - hosts: controller remote_user: root sudo: True diff --git a/deploy/adapters/ansible/roles/onos/files/install_jdk8.tar b/deploy/adapters/ansible/roles/onos/files/install_jdk8.tar new file mode 100755 index 0000000000000000000000000000000000000000..faaaeb393d65b34479915b1a80e3881519d454e3 GIT binary patch literal 4608 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

K*7C z1PoAZN#$k%N z_)64*&#CxM*= Xb`sc0U?+i{1a=bGNnj^|tt9YoR)YeZ literal 0 HcmV?d00001 diff --git a/deploy/adapters/ansible/roles/onos/handlers/main.yml b/deploy/adapters/ansible/roles/onos/handlers/main.yml new file mode 100755 index 00000000..c8742dd5 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos/handlers/main.yml @@ -0,0 +1,3 @@ +--- +- name: restart onos service + service: name=onos state=restarted enabled=yes diff --git a/deploy/adapters/ansible/roles/onos/tasks/main.yml b/deploy/adapters/ansible/roles/onos/tasks/main.yml new file mode 100755 index 00000000..c3e7c7b7 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos/tasks/main.yml @@ -0,0 +1,11 @@ +--- +- include_vars: "{{ ansible_os_family }}.yml" + +- name: Install ONOS Cluster on Controller + include: onos_controller.yml + when: inventory_hostname in groups['onos'] + +- name: Install ONOS Cluster on Compute + include: openvswitch.yml + when: groups['onos']|length !=0 and inventory_hostname not in groups['onos'] + diff --git a/deploy/adapters/ansible/roles/onos/tasks/onos_controller.yml b/deploy/adapters/ansible/roles/onos/tasks/onos_controller.yml new file mode 100755 index 00000000..20691cc9 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos/tasks/onos_controller.yml @@ -0,0 +1,145 @@ +--- +- name: upload onos driver package + unarchive: src=networking-onos.tar dest=/opt/ + +- name: install onos driver + command: su -s /bin/sh -c "/opt/networking-onos/install_driver.sh" + +- name: install onos required packages + action: "{{ ansible_pkg_mgr }} name={{ item }} state=present" + with_items: packages + +- 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: create JAVA_HOME environment variable + shell: > + export J2SDKDIR=/usr/lib/jvm/java-8-oracle; + export J2REDIR=/usr/lib/jvm/java-8-oracle/jre; + export PATH=$PATH:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin; + export JAVA_HOME=/usr/lib/jvm/java-8-oracle; + export DERBY_HOME=/usr/lib/jvm/java-8-oracle/db; + +- name: create onos group + group: name=onos system=yes state=present + +- name: create onos user + user: + name: onos + group: onos + home: "{{ onos_home }}" + createhome: "yes" + system: "yes" + shell: "/bin/false" + +- name: download onos package + get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/onos/{{ onos_pkg_name }}" dest=/opt/{{ onos_pkg_name }} + +- name: create new jar repository + command: su -s /bin/sh -c "mkdir ~/.m2" + +- name: download jar repository + get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/onos/repository.tar" dest=~/.m2/ + +- name: extract jar repository + command: su -s /bin/sh -c "tar xvf ~/.m2/repository.tar -C ~/.m2/" + +- name: extract onos package + command: su -s /bin/sh -c "tar xzf /opt/{{ onos_pkg_name }} -C {{ onos_home }} --strip-components 1 --no-overwrite-dir -k --skip-old-files" onos + +- name: configure onos service + shell: > + echo 'export ONOS_OPTS=debug' > {{ onos_home }}/options; + echo 'export ONOS_USER=root' >> {{ onos_home }}/options; + mkdir {{ onos_home }}/var; + mkdir {{ onos_home }}/config; + sed -i '/pre-stop/i\env JAVA_HOME=/usr/lib/jvm/java-8-oracle' {{ onos_home }}/debian/onos.conf; + cp -rf {{ onos_home }}/debian/onos.conf /etc/init/; + cp -rf {{ onos_home }}/debian/onos.conf /etc/init.d/; +# notify: +# - restart onos service + +- name: configure onos boot feature + shell: > + sed -i '/^featuresBoot=/c\featuresBoot={{ onos_boot_features }}' {{ onos_home }}/{{ karaf_dist }}/etc/org.apache.karaf.features.cfg; + +- name: create cluster json + template: + src: cluster.json + dest: "{{ onos_home }}/config/cluster.json" +# notify: +# - restart onos service + +- name: create tablets json + template: + src: tablets.json + dest: "{{ onos_home }}/config/tablets.json" +# notify: +# - restart onos service + +- name: wait for config time + shell: "sleep 10" + +- name: start onos service + service: name=onos state=started enabled=yes + +- name: wait for restart time + shell: "sleep 60" + +- name: start onos service + service: name=onos state=restarted enabled=yes + +- name: wait for onos start time + shell: "sleep 60" + +- name: start onos service + service: name=onos state=restarted enabled=yes + +- name: wait for onos start time + shell: "sleep 100" + +- name: add onos auto start + shell: > + echo "onos">>/opt/service + +########################################################################################################## +################################ ONOS connect with OpenStack ################################ +########################################################################################################## +- name: Run OpenVSwitch Script + include: openvswitch.yml + +- name: Configure Neutron1 + shell: > + crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers onos; + crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vxlan; + crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers vxlan + +- name: Create ML2 Configuration File + template: + src: ml2_conf.sh + dest: "/opt/ml2_conf.sh" + mode: 0777 + +- name: Configure Neutron2 + command: su -s /bin/sh -c "/opt/ml2_conf.sh;" + + +- name: Configure Neutron3 + shell: > + mysql -e "drop database if exists neutron_ml2;"; + mysql -e "create database neutron_ml2 character set utf8;"; + mysql -e "grant all on neutron_ml2.* to 'neutron'@'%';"; + 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; + +- name: Restart neutron-server + service: name=neutron-server state=restarted diff --git a/deploy/adapters/ansible/roles/onos/tasks/openvswitch.yml b/deploy/adapters/ansible/roles/onos/tasks/openvswitch.yml new file mode 100755 index 00000000..7658d90d --- /dev/null +++ b/deploy/adapters/ansible/roles/onos/tasks/openvswitch.yml @@ -0,0 +1,34 @@ +--- +- name: remove neutron-plugin-openvswitch-agent auto start + shell: > + update-rc.d neutron-plugin-openvswitch-agent remove; + sed -i /neutron-plugin-openvswitch-agent/d /opt/service + +- name: shut down and disable Neutron's agent services + service: name=neutron-plugin-openvswitch-agent state=stopped + +- name: Stop the Open vSwitch service and clear existing OVSDB + shell: > + service openvswitch-switch stop ; + rm -rf /var/log/openvswitch/* ; + rm -rf /etc/openvswitch/conf.db ; + service openvswitch-switch start ; + +#- name: get image http server +# shell: awk -F'=' '/compass_server/ {print $2}' /etc/compass.conf +# register: http_server +# +#- name: download ovs +# get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/onos/openvswitch.tar" dest=/opt/openvswitch.tar +# +#- name: extract ovs +# command: su -s /bin/sh -c "tar xvf /opt/openvswitch.tar -C /opt/" +# +#- name: update ovs +# shell: > +# cd /opt/openvswitch; +# dpkg -i openvswitch-common_2.3.0-1_amd64.deb; +# dpkg -i openvswitch-switch_2.3.0-1_amd64.deb; +- name: Set ONOS as the manager + command: su -s /bin/sh -c "ovs-vsctl set-manager tcp:{{ ip_settings[groups['onos'][0]]['mgmt']['ip'] }}:6640;" + diff --git a/deploy/adapters/ansible/roles/onos/templates/cluster.json b/deploy/adapters/ansible/roles/onos/templates/cluster.json new file mode 100755 index 00000000..5982c434 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos/templates/cluster.json @@ -0,0 +1,10 @@ +{ "ipPrefix": "{{ ip_settings[groups['onos'][0]]['mgmt']['cidr'] }}", + "nodes":[ +{% for host in groups['onos'] %} + {% if loop.last %} + { "id": "{{ ip_settings[host]['mgmt']['ip'] }}", "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", "tcpPort": 9876 } + {% else %} + { "id": "{{ ip_settings[host]['mgmt']['ip'] }}", "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", "tcpPort": 9876 }, + {% endif %} +{% endfor %} +]} diff --git a/deploy/adapters/ansible/roles/onos/templates/ml2_conf.sh b/deploy/adapters/ansible/roles/onos/templates/ml2_conf.sh new file mode 100755 index 00000000..8ec9ae11 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos/templates/ml2_conf.sh @@ -0,0 +1,7 @@ +cat <> /etc/neutron/plugins/ml2/ml2_conf.ini +[ml2_onos] +password = admin +username = admin +url_path = http://{{ ip_settings[groups['onos'][0]]['mgmt']['ip'] }}:8181/onos/vtn +EOT + diff --git a/deploy/adapters/ansible/roles/onos/templates/tablets.json b/deploy/adapters/ansible/roles/onos/templates/tablets.json new file mode 100755 index 00000000..f71be71f --- /dev/null +++ b/deploy/adapters/ansible/roles/onos/templates/tablets.json @@ -0,0 +1,63 @@ +{ + "nodes": [ +{% for host in groups['onos'] %} + {% if loop.last %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + } + {% else %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + }, + {% endif %} +{% endfor %} + ], + "partitions": { + {% set key = 1 %} + {% for host in groups['onos'] %} + {% if loop.last %} + "p{{ key }}":[ + {% for host in groups['onos'] %} + {% if loop.last %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + } + {% else %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + }, + {% endif %} + {% endfor %} + ] + {% set key = key + 1 %} + {% else %} + "p{{ key }}":[ + {% for host in groups['onos'] %} + {% if loop.last %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + } + {% else %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + }, + {% endif %} + {% endfor %} + ], + {% set key = key + 1 %} + {% endif %} + {% endfor %} +} +} diff --git a/deploy/adapters/ansible/roles/onos/vars/Debian.yml b/deploy/adapters/ansible/roles/onos/vars/Debian.yml new file mode 100755 index 00000000..70ce4ef2 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos/vars/Debian.yml @@ -0,0 +1,6 @@ +--- +packages: + - software-properties-common + - crudini + +services: [] diff --git a/deploy/adapters/ansible/roles/onos/vars/RedHat.yml b/deploy/adapters/ansible/roles/onos/vars/RedHat.yml new file mode 100755 index 00000000..70ce4ef2 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos/vars/RedHat.yml @@ -0,0 +1,6 @@ +--- +packages: + - software-properties-common + - crudini + +services: [] diff --git a/deploy/adapters/ansible/roles/onos/vars/main.yml b/deploy/adapters/ansible/roles/onos/vars/main.yml new file mode 100755 index 00000000..66d81353 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos/vars/main.yml @@ -0,0 +1,6 @@ +onos_pkg_url: http://downloads.onosproject.org/release/onos-1.3.0.tar.gz +onos_pkg_name: onos-1.3.0.tar.gz +onos_home: /opt/onos/ +karaf_dist: apache-karaf-3.0.3 +jdk8_pkg_name: jdk-8u51-linux-x64.tar.gz +onos_boot_features: config,standard,region,package,kar,ssh,management,webconsole,onos-api,onos-core,onos-incubator,onos-cli,onos-rest,onos-gui,onos-openflow,onos-ovsdatabase,onos-app-vtnrsc,onos-app-vtn,onos-app-vtnweb,onos-app-proxyarp diff --git a/deploy/adapters/ansible/roles/onos_cluster/files/install_jdk8.tar b/deploy/adapters/ansible/roles/onos_cluster/files/install_jdk8.tar new file mode 100755 index 0000000000000000000000000000000000000000..faaaeb393d65b34479915b1a80e3881519d454e3 GIT binary patch literal 4608 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

K*7C z1PoAZN#$k%N z_)64*&#CxM*= Xb`sc0U?+i{1a=bGNnj^|tt9YoR)YeZ literal 0 HcmV?d00001 diff --git a/deploy/adapters/ansible/roles/onos_cluster/handlers/main.yml b/deploy/adapters/ansible/roles/onos_cluster/handlers/main.yml new file mode 100755 index 00000000..c8742dd5 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos_cluster/handlers/main.yml @@ -0,0 +1,3 @@ +--- +- name: restart onos service + service: name=onos state=restarted enabled=yes diff --git a/deploy/adapters/ansible/roles/onos_cluster/tasks/main.yml b/deploy/adapters/ansible/roles/onos_cluster/tasks/main.yml new file mode 100755 index 00000000..c3e7c7b7 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos_cluster/tasks/main.yml @@ -0,0 +1,11 @@ +--- +- include_vars: "{{ ansible_os_family }}.yml" + +- name: Install ONOS Cluster on Controller + include: onos_controller.yml + when: inventory_hostname in groups['onos'] + +- name: Install ONOS Cluster on Compute + include: openvswitch.yml + when: groups['onos']|length !=0 and inventory_hostname not in groups['onos'] + diff --git a/deploy/adapters/ansible/roles/onos_cluster/tasks/onos_controller.yml b/deploy/adapters/ansible/roles/onos_cluster/tasks/onos_controller.yml new file mode 100755 index 00000000..20691cc9 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos_cluster/tasks/onos_controller.yml @@ -0,0 +1,145 @@ +--- +- name: upload onos driver package + unarchive: src=networking-onos.tar dest=/opt/ + +- name: install onos driver + command: su -s /bin/sh -c "/opt/networking-onos/install_driver.sh" + +- name: install onos required packages + action: "{{ ansible_pkg_mgr }} name={{ item }} state=present" + with_items: packages + +- 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: create JAVA_HOME environment variable + shell: > + export J2SDKDIR=/usr/lib/jvm/java-8-oracle; + export J2REDIR=/usr/lib/jvm/java-8-oracle/jre; + export PATH=$PATH:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin; + export JAVA_HOME=/usr/lib/jvm/java-8-oracle; + export DERBY_HOME=/usr/lib/jvm/java-8-oracle/db; + +- name: create onos group + group: name=onos system=yes state=present + +- name: create onos user + user: + name: onos + group: onos + home: "{{ onos_home }}" + createhome: "yes" + system: "yes" + shell: "/bin/false" + +- name: download onos package + get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/onos/{{ onos_pkg_name }}" dest=/opt/{{ onos_pkg_name }} + +- name: create new jar repository + command: su -s /bin/sh -c "mkdir ~/.m2" + +- name: download jar repository + get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/onos/repository.tar" dest=~/.m2/ + +- name: extract jar repository + command: su -s /bin/sh -c "tar xvf ~/.m2/repository.tar -C ~/.m2/" + +- name: extract onos package + command: su -s /bin/sh -c "tar xzf /opt/{{ onos_pkg_name }} -C {{ onos_home }} --strip-components 1 --no-overwrite-dir -k --skip-old-files" onos + +- name: configure onos service + shell: > + echo 'export ONOS_OPTS=debug' > {{ onos_home }}/options; + echo 'export ONOS_USER=root' >> {{ onos_home }}/options; + mkdir {{ onos_home }}/var; + mkdir {{ onos_home }}/config; + sed -i '/pre-stop/i\env JAVA_HOME=/usr/lib/jvm/java-8-oracle' {{ onos_home }}/debian/onos.conf; + cp -rf {{ onos_home }}/debian/onos.conf /etc/init/; + cp -rf {{ onos_home }}/debian/onos.conf /etc/init.d/; +# notify: +# - restart onos service + +- name: configure onos boot feature + shell: > + sed -i '/^featuresBoot=/c\featuresBoot={{ onos_boot_features }}' {{ onos_home }}/{{ karaf_dist }}/etc/org.apache.karaf.features.cfg; + +- name: create cluster json + template: + src: cluster.json + dest: "{{ onos_home }}/config/cluster.json" +# notify: +# - restart onos service + +- name: create tablets json + template: + src: tablets.json + dest: "{{ onos_home }}/config/tablets.json" +# notify: +# - restart onos service + +- name: wait for config time + shell: "sleep 10" + +- name: start onos service + service: name=onos state=started enabled=yes + +- name: wait for restart time + shell: "sleep 60" + +- name: start onos service + service: name=onos state=restarted enabled=yes + +- name: wait for onos start time + shell: "sleep 60" + +- name: start onos service + service: name=onos state=restarted enabled=yes + +- name: wait for onos start time + shell: "sleep 100" + +- name: add onos auto start + shell: > + echo "onos">>/opt/service + +########################################################################################################## +################################ ONOS connect with OpenStack ################################ +########################################################################################################## +- name: Run OpenVSwitch Script + include: openvswitch.yml + +- name: Configure Neutron1 + shell: > + crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers onos; + crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vxlan; + crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers vxlan + +- name: Create ML2 Configuration File + template: + src: ml2_conf.sh + dest: "/opt/ml2_conf.sh" + mode: 0777 + +- name: Configure Neutron2 + command: su -s /bin/sh -c "/opt/ml2_conf.sh;" + + +- name: Configure Neutron3 + shell: > + mysql -e "drop database if exists neutron_ml2;"; + mysql -e "create database neutron_ml2 character set utf8;"; + mysql -e "grant all on neutron_ml2.* to 'neutron'@'%';"; + 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; + +- name: Restart neutron-server + service: name=neutron-server state=restarted diff --git a/deploy/adapters/ansible/roles/onos_cluster/tasks/openvswitch.yml b/deploy/adapters/ansible/roles/onos_cluster/tasks/openvswitch.yml new file mode 100755 index 00000000..7658d90d --- /dev/null +++ b/deploy/adapters/ansible/roles/onos_cluster/tasks/openvswitch.yml @@ -0,0 +1,34 @@ +--- +- name: remove neutron-plugin-openvswitch-agent auto start + shell: > + update-rc.d neutron-plugin-openvswitch-agent remove; + sed -i /neutron-plugin-openvswitch-agent/d /opt/service + +- name: shut down and disable Neutron's agent services + service: name=neutron-plugin-openvswitch-agent state=stopped + +- name: Stop the Open vSwitch service and clear existing OVSDB + shell: > + service openvswitch-switch stop ; + rm -rf /var/log/openvswitch/* ; + rm -rf /etc/openvswitch/conf.db ; + service openvswitch-switch start ; + +#- name: get image http server +# shell: awk -F'=' '/compass_server/ {print $2}' /etc/compass.conf +# register: http_server +# +#- name: download ovs +# get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/onos/openvswitch.tar" dest=/opt/openvswitch.tar +# +#- name: extract ovs +# command: su -s /bin/sh -c "tar xvf /opt/openvswitch.tar -C /opt/" +# +#- name: update ovs +# shell: > +# cd /opt/openvswitch; +# dpkg -i openvswitch-common_2.3.0-1_amd64.deb; +# dpkg -i openvswitch-switch_2.3.0-1_amd64.deb; +- name: Set ONOS as the manager + command: su -s /bin/sh -c "ovs-vsctl set-manager tcp:{{ ip_settings[groups['onos'][0]]['mgmt']['ip'] }}:6640;" + diff --git a/deploy/adapters/ansible/roles/onos_cluster/templates/cluster.json b/deploy/adapters/ansible/roles/onos_cluster/templates/cluster.json new file mode 100755 index 00000000..5982c434 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos_cluster/templates/cluster.json @@ -0,0 +1,10 @@ +{ "ipPrefix": "{{ ip_settings[groups['onos'][0]]['mgmt']['cidr'] }}", + "nodes":[ +{% for host in groups['onos'] %} + {% if loop.last %} + { "id": "{{ ip_settings[host]['mgmt']['ip'] }}", "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", "tcpPort": 9876 } + {% else %} + { "id": "{{ ip_settings[host]['mgmt']['ip'] }}", "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", "tcpPort": 9876 }, + {% endif %} +{% endfor %} +]} diff --git a/deploy/adapters/ansible/roles/onos_cluster/templates/ml2_conf.sh b/deploy/adapters/ansible/roles/onos_cluster/templates/ml2_conf.sh new file mode 100755 index 00000000..8ec9ae11 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos_cluster/templates/ml2_conf.sh @@ -0,0 +1,7 @@ +cat <> /etc/neutron/plugins/ml2/ml2_conf.ini +[ml2_onos] +password = admin +username = admin +url_path = http://{{ ip_settings[groups['onos'][0]]['mgmt']['ip'] }}:8181/onos/vtn +EOT + diff --git a/deploy/adapters/ansible/roles/onos_cluster/templates/tablets.json b/deploy/adapters/ansible/roles/onos_cluster/templates/tablets.json new file mode 100755 index 00000000..f71be71f --- /dev/null +++ b/deploy/adapters/ansible/roles/onos_cluster/templates/tablets.json @@ -0,0 +1,63 @@ +{ + "nodes": [ +{% for host in groups['onos'] %} + {% if loop.last %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + } + {% else %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + }, + {% endif %} +{% endfor %} + ], + "partitions": { + {% set key = 1 %} + {% for host in groups['onos'] %} + {% if loop.last %} + "p{{ key }}":[ + {% for host in groups['onos'] %} + {% if loop.last %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + } + {% else %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + }, + {% endif %} + {% endfor %} + ] + {% set key = key + 1 %} + {% else %} + "p{{ key }}":[ + {% for host in groups['onos'] %} + {% if loop.last %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + } + {% else %} + { + "ip": "{{ ip_settings[host]['mgmt']['ip'] }}", + "id": "{{ ip_settings[host]['mgmt']['ip'] }}", + "tcpPort": 9876 + }, + {% endif %} + {% endfor %} + ], + {% set key = key + 1 %} + {% endif %} + {% endfor %} +} +} diff --git a/deploy/adapters/ansible/roles/onos_cluster/vars/Debian.yml b/deploy/adapters/ansible/roles/onos_cluster/vars/Debian.yml new file mode 100755 index 00000000..70ce4ef2 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos_cluster/vars/Debian.yml @@ -0,0 +1,6 @@ +--- +packages: + - software-properties-common + - crudini + +services: [] diff --git a/deploy/adapters/ansible/roles/onos_cluster/vars/RedHat.yml b/deploy/adapters/ansible/roles/onos_cluster/vars/RedHat.yml new file mode 100755 index 00000000..70ce4ef2 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos_cluster/vars/RedHat.yml @@ -0,0 +1,6 @@ +--- +packages: + - software-properties-common + - crudini + +services: [] diff --git a/deploy/adapters/ansible/roles/onos_cluster/vars/main.yml b/deploy/adapters/ansible/roles/onos_cluster/vars/main.yml new file mode 100755 index 00000000..66d81353 --- /dev/null +++ b/deploy/adapters/ansible/roles/onos_cluster/vars/main.yml @@ -0,0 +1,6 @@ +onos_pkg_url: http://downloads.onosproject.org/release/onos-1.3.0.tar.gz +onos_pkg_name: onos-1.3.0.tar.gz +onos_home: /opt/onos/ +karaf_dist: apache-karaf-3.0.3 +jdk8_pkg_name: jdk-8u51-linux-x64.tar.gz +onos_boot_features: config,standard,region,package,kar,ssh,management,webconsole,onos-api,onos-core,onos-incubator,onos-cli,onos-rest,onos-gui,onos-openflow,onos-ovsdatabase,onos-app-vtnrsc,onos-app-vtn,onos-app-vtnweb,onos-app-proxyarp -- 2.16.6