Ubuntu: Use NVIDIA server drivers from Canonical
- Add support for using the NVIDIA headless server packages from the upstream Canonical repos - Keep support for using the CUDA repository instead, but make non-default
This commit is contained in:
parent
5f58443c4b
commit
68cffed89b
@ -5,13 +5,30 @@ nvidia_driver_skip_reboot: no
|
|||||||
nvidia_driver_module_file: /etc/modprobe.d/nvidia.conf
|
nvidia_driver_module_file: /etc/modprobe.d/nvidia.conf
|
||||||
nvidia_driver_module_params: ''
|
nvidia_driver_module_params: ''
|
||||||
|
|
||||||
# RedHat family
|
##############################################################################
|
||||||
|
# RedHat family #
|
||||||
|
##############################################################################
|
||||||
nvidia_driver_rhel_epel_repo_baseurl: "https://download.fedoraproject.org/pub/epel/$releasever/$basearch/"
|
nvidia_driver_rhel_epel_repo_baseurl: "https://download.fedoraproject.org/pub/epel/$releasever/$basearch/"
|
||||||
nvidia_driver_rhel_epel_repo_gpgkey: "https://epel.mirror.constant.com//RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }}"
|
nvidia_driver_rhel_epel_repo_gpgkey: "https://epel.mirror.constant.com//RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }}"
|
||||||
nvidia_driver_rhel_cuda_repo_baseurl: "https://developer.download.nvidia.com/compute/cuda/repos/{{ _rhel_repo_dir }}/"
|
nvidia_driver_rhel_cuda_repo_baseurl: "https://developer.download.nvidia.com/compute/cuda/repos/{{ _rhel_repo_dir }}/"
|
||||||
nvidia_driver_rhel_cuda_repo_gpgkey: "https://developer.download.nvidia.com/compute/cuda/repos/{{ _rhel_repo_dir }}/7fa2af80.pub"
|
nvidia_driver_rhel_cuda_repo_gpgkey: "https://developer.download.nvidia.com/compute/cuda/repos/{{ _rhel_repo_dir }}/7fa2af80.pub"
|
||||||
|
|
||||||
# Ubuntu
|
|
||||||
|
##############################################################################
|
||||||
|
# Ubuntu #
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
# Determine if we should install from CUDA repo instead of Canonical repos
|
||||||
|
nvidia_driver_ubuntu_install_from_cuda_repo: no
|
||||||
|
|
||||||
|
# Installing with Canonical repositories
|
||||||
|
nvidia_driver_ubuntu_branch: "450"
|
||||||
|
nvidia_driver_ubuntu_packages:
|
||||||
|
- "nvidia-headless-{{ nvidia_driver_ubuntu_branch }}-server"
|
||||||
|
- "nvidia-utils-{{ nvidia_driver_ubuntu_branch }}-server"
|
||||||
|
|
||||||
|
# Installing with CUDA repositories
|
||||||
nvidia_driver_ubuntu_cuda_repo_gpgkey_url: "https://developer.download.nvidia.com/compute/cuda/repos/{{ _ubuntu_repo_dir }}/7fa2af80.pub"
|
nvidia_driver_ubuntu_cuda_repo_gpgkey_url: "https://developer.download.nvidia.com/compute/cuda/repos/{{ _ubuntu_repo_dir }}/7fa2af80.pub"
|
||||||
nvidia_driver_ubuntu_cuda_repo_gpgkey_id: "7fa2af80"
|
nvidia_driver_ubuntu_cuda_repo_gpgkey_id: "7fa2af80"
|
||||||
nvidia_driver_ubuntu_cuda_repo_baseurl: "http://developer.download.nvidia.com/compute/cuda/repos/{{ _ubuntu_repo_dir }}"
|
nvidia_driver_ubuntu_cuda_repo_baseurl: "http://developer.download.nvidia.com/compute/cuda/repos/{{ _ubuntu_repo_dir }}"
|
||||||
|
nvidia_driver_ubuntu_cuda_package: "cuda-drivers"
|
||||||
|
35
tasks/install-ubuntu-cuda-repo.yml
Normal file
35
tasks/install-ubuntu-cuda-repo.yml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
- name: remove ppa
|
||||||
|
apt_repository:
|
||||||
|
repo: ppa:graphics-drivers/ppa
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: add pin file
|
||||||
|
copy:
|
||||||
|
src: "cuda-ubuntu.pin"
|
||||||
|
dest: "/etc/apt/preferences.d/cuda-repository-pin-600"
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
mode: "0644"
|
||||||
|
|
||||||
|
- name: add key
|
||||||
|
apt_key:
|
||||||
|
url: "{{ nvidia_driver_ubuntu_cuda_repo_gpgkey_url }}"
|
||||||
|
id: "{{ nvidia_driver_ubuntu_cuda_repo_gpgkey_id }}"
|
||||||
|
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
||||||
|
|
||||||
|
|
||||||
|
- name: add repo
|
||||||
|
apt_repository:
|
||||||
|
repo: "deb {{ nvidia_driver_ubuntu_cuda_repo_baseurl }} /"
|
||||||
|
update_cache: yes
|
||||||
|
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
||||||
|
|
||||||
|
- name: install driver packages
|
||||||
|
apt:
|
||||||
|
name: "{{ nvidia_driver_package_version | ternary(nvidia_driver_ubuntu_cuda_package+'='+nvidia_driver_package_version, nvidia_driver_ubuntu_cuda_package) }}"
|
||||||
|
state: "{{ nvidia_driver_package_state }}"
|
||||||
|
autoremove: "{{ nvidia_driver_package_state == 'absent' }}"
|
||||||
|
purge: "{{ nvidia_driver_package_state == 'absent' }}"
|
||||||
|
register: install_driver
|
||||||
|
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
@ -4,32 +4,12 @@
|
|||||||
repo: ppa:graphics-drivers/ppa
|
repo: ppa:graphics-drivers/ppa
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: add pin file
|
|
||||||
copy:
|
|
||||||
src: "cuda-ubuntu.pin"
|
|
||||||
dest: "/etc/apt/preferences.d/cuda-repository-pin-600"
|
|
||||||
owner: "root"
|
|
||||||
group: "root"
|
|
||||||
mode: "0644"
|
|
||||||
|
|
||||||
- name: add key
|
|
||||||
apt_key:
|
|
||||||
url: "{{ nvidia_driver_ubuntu_cuda_repo_gpgkey_url }}"
|
|
||||||
id: "{{ nvidia_driver_ubuntu_cuda_repo_gpgkey_id }}"
|
|
||||||
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
|
||||||
|
|
||||||
|
|
||||||
- name: add repo
|
|
||||||
apt_repository:
|
|
||||||
repo: "deb {{ nvidia_driver_ubuntu_cuda_repo_baseurl }} /"
|
|
||||||
update_cache: yes
|
|
||||||
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
|
||||||
|
|
||||||
- name: install driver packages
|
- name: install driver packages
|
||||||
apt:
|
apt:
|
||||||
name: "{{ nvidia_driver_package_version | ternary('cuda-drivers='+nvidia_driver_package_version, 'cuda-drivers') }}"
|
name: "{{ nvidia_driver_package_version | ternary(item+'='+nvidia_driver_package_version, item) }}"
|
||||||
state: "{{ nvidia_driver_package_state }}"
|
state: "{{ nvidia_driver_package_version }}"
|
||||||
autoremove: "{{ nvidia_driver_package_state == 'absent' }}"
|
autoremove: "{{ nvidia_driver_package_state == 'absent' }}"
|
||||||
purge: "{{ nvidia_driver_package_state == 'absent' }}"
|
purge: "{{ nvidia_driver_package_state == 'absent' }}"
|
||||||
|
with_items: "{{ nvidia_driver_ubuntu_packages }}"
|
||||||
register: install_driver
|
register: install_driver
|
||||||
environment: "{{proxy_env if proxy_env is defined else {}}}"
|
envrionment: "{{proxy_env if proxy_env is defined else {}}}"
|
||||||
|
@ -5,9 +5,13 @@
|
|||||||
state: absent
|
state: absent
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: ubuntu install tasks
|
- name: ubuntu install tasks (canonical repos)
|
||||||
include_tasks: install-ubuntu.yml
|
include_tasks: install-ubuntu.yml
|
||||||
when: ansible_distribution == 'Ubuntu'
|
when: ansible_distribution == 'Ubuntu' and (not nvidia_driver_ubuntu_install_from_cuda_repo)
|
||||||
|
|
||||||
|
- name: ubuntu install tasks (CUDA repo)
|
||||||
|
include_tasks: install-ubuntu-cuda-repo.yml
|
||||||
|
when: ansible_distribution == 'Ubuntu' and nvidia_driver_ubuntu_install_from_cuda_repo
|
||||||
|
|
||||||
- name: redhat family install tasks
|
- name: redhat family install tasks
|
||||||
include_tasks: install-redhat.yml
|
include_tasks: install-redhat.yml
|
||||||
|
Loading…
Reference in New Issue
Block a user