Copy working code from deepops
This commit is contained in:
parent
26122f9790
commit
458d74bbfd
@ -1,2 +1,10 @@
|
||||
---
|
||||
# defaults file for ansible-role-nvidia-driver
|
||||
nvidia_driver_package_version: ''
|
||||
nvidia_driver_persistence_mode_on: yes
|
||||
nvidia_driver_skip_reboot: no
|
||||
epel_baseurl: "https://download.fedoraproject.org/pub/epel/$releasever/$basearch/"
|
||||
epel_gpgkey: "https://epel.mirror.constant.com//RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }}"
|
||||
rhel_cuda_baseurl: "https://developer.download.nvidia.com/compute/cuda/repos/{{ rhel_repo_dir }}/"
|
||||
rhel_cuda_gpgkey: "https://developer.download.nvidia.com/compute/cuda/repos/{{ rhel_repo_dir }}/7fa2af80.pub"
|
||||
ubuntu_cuda_gpgkey: "https://developer.download.nvidia.com/compute/cuda/repos/{{ ubuntu_repo_dir }}/7fa2af80.pub"
|
||||
ubuntu_cuda_apt_key: "7fa2af80"
|
||||
ubuntu_cuda_baseurl: "http://developer.download.nvidia.com/compute/cuda/repos/{{ ubuntu_repo_dir }}"
|
||||
|
3
files/nvidia-persistenced-override.conf
Normal file
3
files/nvidia-persistenced-override.conf
Normal file
@ -0,0 +1,3 @@
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/nvidia-persistenced --user root --persistence-mode --verbose
|
@ -1,2 +0,0 @@
|
||||
---
|
||||
# handlers file for ansible-role-nvidia-driver
|
@ -1,2 +1,51 @@
|
||||
---
|
||||
# tasks file for ansible-role-nvidia-driver
|
||||
- name: unload nouveau
|
||||
modprobe:
|
||||
name: nouveau
|
||||
state: absent
|
||||
ignore_errors: true
|
||||
|
||||
- name: ubuntu pre-install tasks
|
||||
include_tasks: ubuntu-pre-install.yml
|
||||
when: ansible_distribution == 'Ubuntu'
|
||||
|
||||
- name: redhat family pre-install tasks
|
||||
include_tasks: redhat-pre-install.yml
|
||||
when: ansible_os_family == 'RedHat'
|
||||
|
||||
- name: install driver packages
|
||||
package:
|
||||
name: "{{ nvidia_driver_package_version | ternary('cuda-drivers='+nvidia_driver_package_version, 'cuda-drivers') }}"
|
||||
state: present
|
||||
register: install_driver
|
||||
|
||||
- name: redhat family post-install tasks
|
||||
include_tasks: redhat-post-install.yml
|
||||
when: ansible_os_family == 'RedHat'
|
||||
|
||||
- name: create persistenced override dir
|
||||
file:
|
||||
path: /etc/systemd/system/nvidia-persistenced.service.d/
|
||||
state: directory
|
||||
recurse: yes
|
||||
|
||||
- name: configure persistenced service to turn on persistence mode
|
||||
copy:
|
||||
src: nvidia-persistenced-override.conf
|
||||
dest: /etc/systemd/system/nvidia-persistenced.service.d/override.conf
|
||||
when: nvidia_driver_persistence_mode_on
|
||||
|
||||
- name: remove persistenced service override
|
||||
file:
|
||||
path: /etc/systemd/system/nvidia-persistenced.service.d/override.conf
|
||||
state: absent
|
||||
when: not nvidia_driver_persistence_mode_on
|
||||
|
||||
- name: enable persistenced
|
||||
systemd:
|
||||
name: nvidia-persistenced
|
||||
enabled: yes
|
||||
|
||||
- name: reboot after driver install
|
||||
reboot:
|
||||
when: install_driver.changed and not nvidia_driver_skip_reboot
|
||||
|
36
tasks/redhat-post-install.yml
Normal file
36
tasks/redhat-post-install.yml
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
# The driver package pulls in the latest kernel-headers package, but not the
|
||||
# latest kernel. Check to see if there is a mismatch.
|
||||
|
||||
- name: check kernel versions
|
||||
yum:
|
||||
list: kernel
|
||||
register: yum_list
|
||||
|
||||
- name: register installed kernel version
|
||||
debug:
|
||||
msg: "{{ yum_list.results | selectattr('yumstate', 'equalto', 'installed') | list }}"
|
||||
register: kernel_version
|
||||
|
||||
- name: check kernel-headers versions
|
||||
yum:
|
||||
list: kernel-headers
|
||||
register: yum_list
|
||||
|
||||
- name: register installed kernel-headers version
|
||||
debug:
|
||||
msg: "{{ yum_list.results | selectattr('yumstate', 'equalto', 'installed') | list }}"
|
||||
register: kernel_headers_version
|
||||
|
||||
- name: update kernel if headers don't match
|
||||
yum:
|
||||
name:
|
||||
- kernel
|
||||
- kernel-tools
|
||||
- kernel-tools-libs
|
||||
- kernel-devel
|
||||
- kernel-debug-devel
|
||||
- kernel-headers
|
||||
state: latest
|
||||
register: kernel_update
|
||||
when: kernel_version.msg[0].release != kernel_headers_version.msg[0].release
|
19
tasks/redhat-pre-install.yml
Normal file
19
tasks/redhat-pre-install.yml
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
- name: add epel repo
|
||||
yum_repository:
|
||||
name: epel
|
||||
description: EPEL YUM repo
|
||||
baseurl: "{{ epel_baseurl }}"
|
||||
gpgkey: "{{ epel_gpgkey }}"
|
||||
|
||||
- name: install dependencies
|
||||
yum:
|
||||
name: dkms
|
||||
state: latest
|
||||
|
||||
- name: add repo
|
||||
yum_repository:
|
||||
name: cuda
|
||||
description: NVIDIA CUDA YUM Repo
|
||||
gpgkey: "{{ rhel_cuda_gpgkey }}"
|
||||
baseurl: "{{ rhel_cuda_baseurl }}"
|
15
tasks/ubuntu-pre-install.yml
Normal file
15
tasks/ubuntu-pre-install.yml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
- name: remove ppa
|
||||
apt_repository:
|
||||
repo: ppa:graphics-drivers/ppa
|
||||
state: absent
|
||||
|
||||
- name: add key
|
||||
apt_key:
|
||||
url: "{{ ubuntu_cuda_gpgkey }}"
|
||||
id: "{{ ubuntu_cuda_apt_key }}"
|
||||
|
||||
- name: add repo
|
||||
apt_repository:
|
||||
repo: "deb {{ ubuntu_cuda_baseurl }} /"
|
||||
update_cache: yes
|
@ -1,2 +1,2 @@
|
||||
---
|
||||
# vars file for ansible-role-nvidia-driver
|
||||
ubuntu_repo_dir: "{{ ansible_distribution | lower }}{{ ansible_distribution_version | replace('.', '') }}/{{ ansible_architecture }}"
|
||||
rhel_repo_dir: "rhel{{ ansible_distribution_major_version }}/{{ ansible_architecture }}"
|
||||
|
Loading…
Reference in New Issue
Block a user