Newer
Older

Andreas Hamacher
committed
- 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"

Andreas Hamacher
committed
- include_vars: mellanoxVars.yml
- name: yum install dependencies
Chris Hines
committed
yum: name=perl,pciutils,gtk2,atk,cairo,gcc-gfortran,libxml2-python,tcsh,libnl,lsof,tcl,tk,kernel-devel,python-devel,createrepo,rpm-build
Chris Hines
committed
become: true
become_user: root
when: ansible_os_family == "RedHat"
Simon Michnowicz
committed
- name: test for existing installation of drivers
Chris Hines
committed
become: true
become_user: root
Simon Michnowicz
committed
register: drivers_installed
ignore_errors: true
Chris Hines
committed
check_mode: no
Chris Hines
committed
changed_when: False
Simon Michnowicz
committed
- name: debug - print out installed driver
debug: var=drivers_installed
reboot_now: false
- name: get driver version
shell: '/bin/ofed_info -l | head -n 1 | cut -f 1 -d " "'
register: driver_version
ignore_errors: true
Chris Hines
committed
check_mode: no
- name: get desired driver version
shell: 'echo {{ MELLANOX_DRIVER_SRC }} | cut -f 1,2,3 -d "-"'
register: desired_driver_version
Chris Hines
committed
check_mode: no
- name: set install due to drivers not installed

Andreas Hamacher
committed
set_fact:
install_now: true
reboot_now: true
- name: debug
debug: var=driver_version
- name: debug
debug: var=desired_driver_version
- name: set install due to version mismatch
reboot_now: true
when: driver_version.failed or not desired_driver_version.stdout in driver_version.stdout
- name: debug - print out value of install_now
debug: var=install_now
- name: copy driver source

Andreas Hamacher
committed
unarchive: copy=no src="http://consistency0/src/{{ MELLANOX_DRIVER_SRC }}.tgz" dest=/tmp
Chris Hines
committed
become: true
become_user: root
Simon Michnowicz
committed
#remove old mellanox drivers as they may interfere with an update
Simon Michnowicz
committed
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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
Simon Michnowicz
committed
- mlnx-ofa_kernel-modules
when: install_now
- name: install drivers
shell: ./mlnxofedinstall -q --add-kernel-support --force --skip-repo
chdir: "/tmp/{{ MELLANOX_DRIVER_SRC }}"
Chris Hines
committed
become: true
become_user: root
Chris Hines
committed
- 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
Chris Hines
committed
- 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
Chris Hines
committed
become: true
# A REBOOT IS NEEDED AFTER SUCCESSFUL INSTALL
#
- name: restart machine
shell: "sleep 5; sudo shutdown -r now"
poll: 1
Chris Hines
committed
become: true
become_user: root
- name: waiting for server to come back
wait_for_connection: sleep=60 timeout=600 delay=60