2025-02-06 00:55:58 +00:00

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