Skip to content
Snippets Groups Projects
main.yml 3.67 KiB
Newer Older

- name: "Force this role to fail if no Mellanox hardware is present"
  #Exclude the role via tags ans ansible-playbook --skip-tags mlx
  shell: "lspci | grep Mellanox"
  check_mode: yes
- include_vars: mellanoxVars.yml

- name: yum install dependencies
  yum:  name=perl,pciutils,gtk2,atk,cairo,gcc-gfortran,libxml2-python,tcsh,libnl,lsof,tcl,tk,kernel-devel,python-devel,createrepo,rpm-build
  when: ansible_os_family == "RedHat"
Trung Nguyen's avatar
Trung Nguyen committed
  shell: '/bin/ibv_devinfo'
Trung Nguyen's avatar
Trung Nguyen committed
- name: debug - print out installed driver
  debug: var=drivers_installed

- name: default dont install
  set_fact:
    install_now: false
Trung Nguyen's avatar
Trung Nguyen committed
  shell: '/bin/ofed_info -l | head -n 1 | cut -f 1 -d " "'
  register: driver_version
  ignore_errors: true
Trung Nguyen's avatar
Trung Nguyen committed
  changed_when: False

- name: get desired driver version
  shell: 'echo {{ MELLANOX_DRIVER_SRC }} | cut -f 1,2,3 -d "-"'
  register: desired_driver_version
Trung Nguyen's avatar
Trung Nguyen committed
  changed_when: False

- name: set install due to drivers not installed
Ubuntu's avatar
Ubuntu committed
  when: drivers_installed.failed
- name: debug
  debug: var=driver_version

- name: debug
  debug: var=desired_driver_version

- name: set install due to version mismatch
  set_fact:
    install_now: true
Ubuntu's avatar
Ubuntu committed
  when: driver_version.failed or not desired_driver_version.stdout in driver_version.stdout
Trung Nguyen's avatar
Trung Nguyen committed
- name: debug - print out value of install_now
  debug: var=install_now

- name: copy driver source
  unarchive: copy=no src="http://consistency0/src/{{ MELLANOX_DRIVER_SRC }}.tgz" dest=/tmp
  when: install_now
#remove old mellanox drivers as they may interfere with an update
- name: stop lustre
  service: name=lustre-client state=stopped
  become: true
  become_user: root
  ignore_errors: true
  when: install_now

- name: remove ipa stuff
  yum: name={{ item }} state=absent
  become: true
  become_user: root
  ignore_errors: true
  with_items:
  - ipa-common
  - ipa-python-compat
  - python2-ipalib
  when: install_now

- name: remove unnecessary packages that break stuff
  yum: name={{ item }} state=absent
  become: true
  become_user: root
  ignore_errors: true
  with_items:
  - libgpod
  - usbmuxd
  - libmlx5
  - libmlx4
  - libibverbs
  when: install_now

- name: remove mellanox rpms
  yum: name={{ item }} state=absent
  become: true
  become_user: root
  ignore_errors: true
  with_items:
  - mlnx-ofa_kernel
  - mlnx-ofa_kernel-devel
- name: install drivers
  shell: ./mlnxofedinstall -q --add-kernel-support --force --skip-repo
    chdir: "/tmp/{{ MELLANOX_DRIVER_SRC }}"
  when: install_now
- name: Copy roce_mode.service file
  copy: dest=/etc/systemd/system src=files/roce_mode.service owner=root group=root mode=0644
  become: true
  become_user: root
  register: service_file
- name: Reload systemd
  shell: systemctl daemon-reload
  become: true
  become_user: root
  when: service_file.changed
  register: reload_service

- name: enable roce_mode setting
  service: name=roce_mode state=started enabled=yes
  ignore_errors: yes
# A REBOOT IS NEEDED AFTER SUCCESSFUL INSTALL
#
- name: restart machine
  shell: "sleep 5; sudo shutdown -r now"
  when: reboot_now

- name: waiting for server to come back
  wait_for_connection: sleep=60 timeout=600 delay=60
  when: reboot_now