90 lines
3.0 KiB
YAML
90 lines
3.0 KiB
YAML
---
|
|
# We have to do this because the CentOS mirrors don't keep kernel-headers, etc
|
|
# for older kernels.
|
|
- name: ensure we have kernel-headers installed for the current kernel
|
|
block:
|
|
- name: attempt to install kernel support packages for current version
|
|
yum:
|
|
name:
|
|
- "kernel-headers-{{ ansible_kernel }}"
|
|
- "kernel-tools-{{ ansible_kernel }}"
|
|
- "kernel-tools-libs-{{ ansible_kernel }}"
|
|
- "kernel-devel-{{ ansible_kernel }}"
|
|
- "kernel-debug-devel-{{ ansible_kernel }}"
|
|
state: present
|
|
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
|
rescue:
|
|
- name: update the kernel to latest version so we have a supported version
|
|
yum:
|
|
name:
|
|
- "kernel"
|
|
- "kernel-headers"
|
|
- "kernel-tools"
|
|
- "kernel-tools-libs"
|
|
- "kernel-devel"
|
|
- "kernel-debug-devel"
|
|
state: latest
|
|
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
|
- name: reboot to pick up the new kernel
|
|
reboot:
|
|
when: not nvidia_driver_skip_reboot
|
|
|
|
- name: add epel repo gpg key
|
|
rpm_key:
|
|
key: "{{ epel_repo_key }}"
|
|
state: present
|
|
when: nvidia_driver_add_repos | bool
|
|
|
|
- name: add epel repo
|
|
become: true
|
|
yum:
|
|
name:
|
|
- "{{ epel_package }}"
|
|
state: latest
|
|
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
|
when: nvidia_driver_add_repos | bool
|
|
|
|
- name: install dependencies
|
|
yum:
|
|
name: dkms
|
|
state: present
|
|
|
|
- name: blacklist nouveau
|
|
kernel_blacklist:
|
|
name: nouveau
|
|
state: present
|
|
|
|
- name: add repo
|
|
yum_repository:
|
|
name: cuda
|
|
description: NVIDIA CUDA YUM Repo
|
|
baseurl: "{{ nvidia_driver_rhel_cuda_repo_baseurl }}"
|
|
gpgkey: "{{ nvidia_driver_rhel_cuda_repo_gpgkey }}"
|
|
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
|
when: nvidia_driver_add_repos | bool
|
|
|
|
- name: install driver packages RHEL/CentOS 7 and older
|
|
yum:
|
|
name: "{{ nvidia_driver_package_version | ternary('nvidia-driver-latest-dkms-'+nvidia_driver_package_version, 'nvidia-driver-branch-'+nvidia_driver_rhel_branch) }}"
|
|
state: "{{ nvidia_driver_package_state }}"
|
|
autoremove: "{{ nvidia_driver_package_state == 'absent' }}"
|
|
register: install_driver_rhel7
|
|
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
|
when: ansible_distribution_major_version < '8'
|
|
|
|
- name: install driver packages RHEL/CentOS 8 and newer
|
|
dnf:
|
|
name: "{{ nvidia_driver_package_version | ternary('@nvidia-driver:'+nvidia_driver_package_version, '@nvidia-driver:'+nvidia_driver_rhel_branch+'-dkms') }}"
|
|
state: "{{ nvidia_driver_package_state }}"
|
|
autoremove: "{{ nvidia_driver_package_state == 'absent' }}"
|
|
register: install_driver_rhel8
|
|
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
|
when: ansible_distribution_major_version > '7'
|
|
|
|
- name: Set install_driver.changed var for RHEL 7/8
|
|
debug:
|
|
msg: Driver installed for RHEL
|
|
when: install_driver_rhel7.changed or install_driver_rhel8.changed
|
|
register: install_driver
|
|
changed_when: install_driver_rhel7.changed or install_driver_rhel8.changed
|