diff --git a/roles/gpu/tasks/main.yml b/roles/gpu/tasks/main.yml index d667addfbd86b7b59c73f132a4ec2a80110d7527..c13e7db22a699453bf41d0bc45a6663bf51787ae 100644 --- a/roles/gpu/tasks/main.yml +++ b/roles/gpu/tasks/main.yml @@ -62,11 +62,45 @@ register: nvidia_driver ignore_errors: true +- name: set default driver version + set_fact: + installed_driver_version: '0.0' + +- name: check nvidia driver version + shell: 'nvidia-smi | grep -Po "Driver Version: \K\S+"' + register: installed_driver_version + when: nvidia_driver.stat.exists + check_mode: no + +- name: set install default + set_fact: + install_driver: false + +- name: set uninstall default + set_fact: + install_driver: false + +- name: set install + set_fact: + install_driver: true + when: not nvidia_driver.stat.exists or not installed_driver_version == nvidia_version + +- name: set uninstall + set_fact: + uninstall_driver: true + when: nvidia_driver.stat.exists and not installed_driver_version == nvidia_version + +- name: stop the persistence daemon + service: name=nvidia-persistenced state=stopped + become: true + become_user: root + when: uninstall_driver + - name: get nvidia driver get_url: url=http://consistency0/src/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run dest=/tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run become: true become_user: root - when: not nvidia_driver.stat.exists + when: install_driver #- name: Copy boot file # template: src=grub.conf.j2 dest=/boot/grub/grub.conf @@ -83,7 +117,7 @@ - name: build nvidia driver shell: chmod 755 /tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run; /tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run --silent sudo: true - when: not nvidia_driver.stat.exists + when: install_driver - name: set the GOM shell: nvidia-smi --gom=0