68 lines
2.2 KiB
YAML
Executable File
68 lines
2.2 KiB
YAML
Executable File
|
|
- name: Create systemd service file for NVIDIA CDI generator
|
|
become: true
|
|
ansible.builtin.copy:
|
|
dest: /etc/systemd/system/nvidia-cdi-generator.service
|
|
content: |
|
|
[Unit]
|
|
Description=Generate NVIDIA CDI YAML for Docker at boot
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=/usr/bin/nvidia-ctk cdi generate --output /var/run/cdi/nvidia.yaml
|
|
RemainAfterExit=true
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
- name: reload systemd daemon
|
|
ansible.builtin.systemd_service:
|
|
scope: user
|
|
daemon_reload: true
|
|
|
|
- name: Enable the NVIDIA CDI generator service
|
|
become: true
|
|
ansible.builtin.systemd_service:
|
|
name: nvidia-cdi-generator.service
|
|
enabled: yes
|
|
|
|
- name: add contrib and nonfree
|
|
become: true
|
|
ansible.builtin.apt_repository:
|
|
repo: deb http://deb.debian.org/debian {{ ansible_distribution_release }} main contrib non-free non-free-firmware
|
|
state: present
|
|
|
|
- name: install nvidia-container-toolkit repo
|
|
become: true
|
|
ansible.builtin.shell:
|
|
cmd: "curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --yes --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | tee /etc/apt/sources.list.d/nvidia-container-toolkit.list"
|
|
|
|
- name: Gather current kernel version
|
|
ansible.builtin.shell: uname -r
|
|
register: kernel_version
|
|
|
|
- name: install Nvidia driver
|
|
become: true
|
|
ansible.builtin.apt:
|
|
pkg:
|
|
- nvidia-container-toolkit
|
|
- nvidia-driver
|
|
- firmware-misc-nonfree
|
|
- "linux-headers-{{ kernel_version.stdout }}"
|
|
state: present
|
|
update_cache: true
|
|
register: updated_driver
|
|
|
|
- name: Unconditionally reboot the machine with all defaults
|
|
ansible.builtin.reboot:
|
|
when: updated_driver.changed
|
|
|
|
- name: configure nvidia for rootless podman
|
|
become: true
|
|
ansible.builtin.shell:
|
|
cmd: nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
|
|
register: nvidia_ctk_result
|
|
ignore_errors: true
|
|
failed_when: nvidia_ctk+result.rc != 1
|
|
|