- 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