############################################################################## # 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: disable NetworkManager service: name=NetworkManager state=stopped enabled=no when: ansible_os_family == 'RedHat' - name: enable network service service: name=network state=started enabled=yes when: ansible_os_family == 'RedHat' - name: ensure script dir exist shell: mkdir -p /opt/setup_networks - name: copy scripts copy: src={{ item }} dest=/opt/setup_networks with_items: - setup_networks/log.py - setup_networks/setup_networks.py - setup_networks/check_network.py tags: - network_check - name: copy config files template: src=network.cfg dest=/opt/setup_networks - name: config external nic template: src: ifcfg-eth.j2 dest: /etc/sysconfig/network-scripts/ifcfg-{{sys_intf_mappings["external"]["interface"]}} - name: remove defualt gw lineinfile: dest: /etc/sysconfig/network regexp: "^GATEWAY=*" state: absent - name: restart the network shell: systemctl restart network - name: make sure python lib exist action: "{{ ansible_pkg_mgr }} name={{ item }} state=present" with_items: - python-yaml - python-netaddr - name: check basic network connectivity shell: > python /opt/setup_networks/check_network.py \ "{{ inventory_hostname }}" \ "{{ ip_settings | to_json }}" register: result until: result.stderr.find('unreachable')==-1 retries: 3 delay: 2 tags: - network_check - meta: flush_handlers