aboutsummaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/openstack_mitaka/roles/onos_cluster
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/adapters/ansible/openstack_mitaka/roles/onos_cluster')
-rwxr-xr-xdeploy/adapters/ansible/openstack_mitaka/roles/onos_cluster/tasks/main.yml53
-rwxr-xr-xdeploy/adapters/ansible/openstack_mitaka/roles/onos_cluster/tasks/openvswitch.yml103
2 files changed, 156 insertions, 0 deletions
diff --git a/deploy/adapters/ansible/openstack_mitaka/roles/onos_cluster/tasks/main.yml b/deploy/adapters/ansible/openstack_mitaka/roles/onos_cluster/tasks/main.yml
new file mode 100755
index 00000000..c77a4c61
--- /dev/null
+++ b/deploy/adapters/ansible/openstack_mitaka/roles/onos_cluster/tasks/main.yml
@@ -0,0 +1,53 @@
+##############################################################################
+# 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
+##############################################################################
+---
+- include_vars: "{{ ansible_os_family }}.yml"
+
+- name: remove neutron-openvswitch-agent auto start
+ shell: >
+ update-rc.d neutron-openvswitch-agent remove;
+ sed -i /neutron-openvswitch-agent/d /opt/service
+ when: groups['onos']|length !=0
+ ignore_errors: True
+
+- name: shut down and disable Neutron's agent services
+ service: name=neutron-openvswitch-agent state=stopped
+ when: groups['onos']|length !=0
+ ignore_errors: True
+
+- name: remove neutron-l3-agent auto start
+ shell: >
+ update-rc.d neutron-l3-agent remove;
+ sed -i /neutron-l3-agent/d /opt/service
+ when: inventory_hostname in groups['onos']
+ ignore_errors: True
+
+- name: shut down and disable Neutron's l3 agent services
+ service: name=neutron-l3-agent state=stopped
+ when: inventory_hostname in groups['onos']
+ ignore_errors: True
+
+- name: Stop the Open vSwitch service and clear existing OVSDB
+ shell: >
+ ovs-vsctl del-br br-int ;
+ ovs-vsctl del-br br-tun ;
+ ovs-vsctl del-manager ;
+ ip link delete onos_port1 type veth peer name onos_port2;
+ when: groups['onos']|length !=0
+ ignore_errors: True
+
+- 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
+# when: groups['onos']|length !=0 and inventory_hostname not in groups['onos']
+
diff --git a/deploy/adapters/ansible/openstack_mitaka/roles/onos_cluster/tasks/openvswitch.yml b/deploy/adapters/ansible/openstack_mitaka/roles/onos_cluster/tasks/openvswitch.yml
new file mode 100755
index 00000000..1db17329
--- /dev/null
+++ b/deploy/adapters/ansible/openstack_mitaka/roles/onos_cluster/tasks/openvswitch.yml
@@ -0,0 +1,103 @@
+##############################################################################
+# 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: remove neutron-plugin-openvswitch-agent auto start
+# shell: >
+# update-rc.d neutron-openvswitch-agent remove;
+# sed -i /neutron-openvswitch-agent/d /opt/service
+
+#- name: shut down and disable Neutron's agent services
+# service: name=neutron-openvswitch-agent state=stopped
+
+#- name: Stop the Open vSwitch service and clear existing OVSDB
+# shell: >
+# ovs-vsctl del-br br-int ;
+# ovs-vsctl del-br br-tun ;
+# ovs-vsctl del-manager ;
+
+#- 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: start up onos-external nic
+# command: su -s /bin/sh -c "ifconfig eth2 0 up"
+- name: set veth port
+ shell: >
+ ip link add onos_port1 type veth peer name onos_port2;
+ ifconfig onos_port1 up;
+ ifconfig onos_port2 up;
+ ignore_errors: True
+
+- name: set veth to ovs
+ shell: >
+ export externamMac=`ifconfig eth1 | grep -Eo '\<[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'`;
+ ifconfig onos_port2 hw ether $externamMac;
+ ovs-vsctl add-port br-prv onos_port1;
+ ignore_errors: True
+
+#- name: wait for onos start time
+# shell: "sleep 200"
+
+- name: add ovsdatabase feature
+ command: su -s /bin/sh -c "/opt/onos/bin/onos 'feature:install onos-ovsdatabase'";
+ when: inventory_hostname == groups['onos'][0]
+
+- name: add openflow-base feature
+ command: su -s /bin/sh -c "/opt/onos/bin/onos 'feature:install onos-openflow-base'";
+ when: inventory_hostname in groups['onos']
+
+- name: add openflow feature
+ command: su -s /bin/sh -c "/opt/onos/bin/onos 'feature:install onos-openflow'";
+ when: inventory_hostname in groups['onos']
+
+- name: add vtn feature
+ command: su -s /bin/sh -c "/opt/onos/bin/onos 'feature:install onos-app-vtn-onosfw'";
+ when: inventory_hostname in groups['onos']
+
+- name: set public eth card start
+ command: su -s /bin/sh -c "/opt/onos/bin/onos 'externalportname-set -n onos_port2'"
+ when: inventory_hostname in groups['onos']
+
+- 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;"
+
+- name: create public network
+ shell: >
+ export OS_PASSWORD=console;
+ export OS_TENANT_NAME=admin;
+ export OS_AUTH_URL=http://{{ internal_vip.ip }}:35357/v2.0;
+ export OS_USERNAME=ADMIN;
+ neutron net-create ext-net --shared --router:external=True;
+ neutron subnet-create ext-net {{ public_net_info.floating_ip_cidr }} --name ext-subnet --allocation-pool start={{ public_net_info.floating_ip_start }},end={{ public_net_info.floating_ip_end }};
+ when: inventory_hostname == groups['controller'][0]
+
+- name: set gateway mac address
+ shell: >
+ ping -c 1 {{ ansible_default_ipv4.gateway }};
+ gatewayMac=`arp -a {{ ansible_default_ipv4.gateway }} | awk '{print $4}'`;
+ /opt/onos/bin/onos "externalgateway-update -m $gatewayMac";
+ when: inventory_hostname in groups['onos']
+
+- name: delete default gateway
+ shell: >
+ route delete default;
+ when: inventory_hostname not in groups['onos']
+ ignore_errors: True