--- - include_vars: mellanoxVars.yml - name: yum install dependencies yum: name=perl,pciutils,gtk2,atk,cairo,gcc-gfortran,libxml2-python,tcsh,libnl,lsof,tcl,tk sudo: true ignore_errors: true when: ansible_os_family == "RedHat" - name: test for existing installation of drivers command: ibv_devinfo sudo: true register: drivers_installed ignore_errors: true # This is NASTY. Don't upgrade production systems without taking them out of the queue first. #- name: yum update to upgrade kernel # shell: "yum update -y" # sudo: true # ignore_errors: true # when: ansible_os_family == "RedHat" and drivers_installed|failed # # A REBOOT IS NEEDED AFTER a KERNEL UPDATE # #- name: restart machine # shell: sleep 5; sudo shutdown -r now "Ansible updates triggered" # async: 2 # poll: 0 # ignore_errors: true # sudo: true # when: ansible_os_family == "RedHat" and drivers_installed|failed # #- name: waiting for server to come back # local_action: wait_for host={{ ansible_ssh_host }} state=started port=22 delay=10 search_regex=OpenSSH # sudo: false # #- name: waiting for server to come back number 2 # local_action: wait_for host={{ ansible_ssh_host }} state=started port=22 delay=10 search_regex=OpenSSH # sudo: false - name: copy driver source #make this a variable unarchive: copy=yes src="files/{{ MELLANOX_DRIVER_SRC }}.tgz" dest=/tmp sudo: true #when: drivers_installed|failed and ansible_os_family=="RedHat" and ansible_distribution_major_version == "7" when: drivers_installed|failed - name: install drivers shell: ./mlnxofedinstall -q args: #more changes chdir: "/tmp/{{ MELLANOX_DRIVER_SRC }}" sudo: true when: drivers_installed|failed # # get IP address before reboot # - name: get IP address local_action: command ./scripts/map_ib_ip.pl {{ inventory_hostname }} register: ip_address sudo: false #when: drivers_installed|failed #get the interface name - name: get devide name of Mellanox Interface from ibdev2netdev.sh script: ibdev2netdev.sh register: MELLANOX_DEVICE_NAME sudo: true #- debug: msg="The MELLANOX_DEVICE_NAME is {{ MELLANOX_DEVICE_NAME }} " # #" # - debug: msg="The MELLANOX_DEVICE_NAME.stdout is {{ MELLANOX_DEVICE_NAME.stdout }} " # #" - name: create /etc/sysconfig/network-scripts/ifcfg-<device name> template: dest=/etc/sysconfig/network-scripts/ifcfg-{{ MELLANOX_DEVICE_NAME.stdout }} src=ifcfg-conf.j2 owner=root group=root sudo: true when: ansible_os_family=="RedHat" #ubuntu equivalent of previous command - name: Ubuntu network interfaces - line 1 lineinfile: args: dest: /etc/network/interfaces line: auto {{ MELLANOX_DEVICE_NAME.stdout }} state: present sudo: true when: ansible_os_family=="Debian" and drivers_installed|failed - name: Ubuntu network interfaces - line 2 lineinfile: args: dest: /etc/network/interfaces line: iface {{ MELLANOX_DEVICE_NAME.stdout }} inet static state: present insertafter: "auto {{ MELLANOX_DEVICE_NAME.stdout }}" sudo: true when: ansible_os_family=="Debian" and drivers_installed|failed - name: Ubuntu network interfaces - line 3 lineinfile: args: dest: /etc/network/interfaces line: address {{ ip_address.stdout }} state: present insertafter: "iface {{ MELLANOX_DEVICE_NAME.stdout }} inet static" sudo: true when: ansible_os_family=="Debian" and drivers_installed|failed # # A REBOOT IS NEEDED AFTER SUCCESSFUL INSTALL # - name: restart machine shell: "sleep 5; sudo shutdown -r now" async: 2 poll: 1 ignore_errors: true sudo: true when: ansible_os_family=="RedHat" and drivers_installed|failed - name: restart machine for Ubuntu -cos it is 'special' shell: "sleep 5; sudo shutdown -r now" async: 2 poll: 1 ignore_errors: true sudo: true when: ansible_os_family=="Debian" and drivers_installed|failed - name: waiting for server to come back local_action: wait_for host={{ ansible_ssh_host }} state=started port=22 delay=10 search_regex=OpenSSH sudo: false when: drivers_installed|failed - name: waiting for server to come back 2 local_action: wait_for host={{ ansible_ssh_host }} state=started port=22 delay=10 search_regex=OpenSSH when: drivers_installed|failed - name: bring up interface #variable=eth0 or ens6 or eth1 command: ifup {{ MELLANOX_DEVICE_NAME.stdout }} sudo: true when: ansible_os_family=="RedHat" and ansible_distribution_major_version == "7"