--- # 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 - 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-latest-dkms') }}" 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:latest-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