############################################################################## # 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: install onos related packages action: "{{ ansible_pkg_mgr }} name={{ item }} state=present" with_items: "{{ packages | union(packages_noarch) }}" when: groups['onos']|length !=0 - 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: > service openvswitch-switch stop ; rm -rf /var/log/openvswitch/* ; rm -rf /etc/openvswitch/conf.db ; service openvswitch-switch start ; when: groups['onos']|length !=0 ignore_errors: "True" ################################################################## ########### Recover External network ################# ################################################################## - name: add ovs bridge openvswitch_bridge: bridge={{ item["name"] }} state=present with_items: "{{ network_cfg['provider_net_mappings'] }}" when: item["type"] == "ovs" and groups['onos']|length !=0 - name: add ovs uplink openvswitch_port: bridge={{ item["name"] }} port={{ item["interface"] }} state=present with_items: "{{ network_cfg['provider_net_mappings'] }}" when: item["type"] == "ovs" and groups['onos']|length !=0 - name: add ovs uplink shell: ip link set {{ item["interface"] }} up with_items: "{{ network_cfg['provider_net_mappings'] }}" when: item["type"] == "ovs" and groups['onos']|length !=0 - name: ensure script dir exist shell: mkdir -p /opt/setup_networks when: groups['onos']|length !=0 - name: copy scripts copy: src={{ item }} dest=/opt/setup_networks with_items: - setup_networks/log.py - setup_networks/setup_networks.py when: groups['onos']|length !=0 - name: copy boot scripts copy: src={{ item }} dest=/etc/init.d/ mode=0755 with_items: - setup_networks/net_init when: groups['onos']|length !=0 - name: copy config files template: src=network.cfg dest=/opt/setup_networks when: groups['onos']|length !=0 - name: make sure python lib exist action: "{{ ansible_pkg_mgr }} name={{ item }} state=present" with_items: - python-yaml - python-netaddr when: groups['onos']|length !=0 - name: run scripts shell: python /opt/setup_networks/setup_networks.py when: groups['onos']|length !=0 - name: add to boot scripts service: name=net_init enabled=yes when: groups['onos']|length !=0 ################################################################## - name: restart keepalived to recover external IP shell: service keepalived restart when: inventory_hostname in groups['onos'] ignore_errors: "True" - name: upgrade pbr shell: | pip install pbr --upgrade - name: Install ONOS Cluster on Controller include: onos_controller.yml when: inventory_hostname in groups['onos'] and onos_sfc == "Disable" - name: Install ONOS Cluster on Controller include: onos_sfc_controller.yml when: inventory_hostname in groups['onos'] and onos_sfc == "Enable" - name: Config ONOS Cluster include: openvswitch.yml when: groups['onos']|length !=0