- name: Treiber-Branch bestimmen ansible.builtin.set_fact: _branch: "{{ nvidia_driver_branch[driver_generation] }}" - name: NVIDIA-Treiber (Server-Variante) installieren ansible.builtin.apt: name: - "nvidia-driver-{{ _branch }}-server" - "nvidia-utils-{{ _branch }}-server" state: present update_cache: true register: driver - name: Treiber gegen ungewollte Updates sperren ansible.builtin.dpkg_selections: name: "{{ item }}" selection: hold loop: - "nvidia-driver-{{ _branch }}-server" - "nvidia-utils-{{ _branch }}-server" - name: NVIDIA-Container-Toolkit-Repository ansible.builtin.shell: | set -euo pipefail curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -fsSL 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' \ > /etc/apt/sources.list.d/nvidia-container-toolkit.list args: creates: /etc/apt/sources.list.d/nvidia-container-toolkit.list executable: /bin/bash - name: Container-Toolkit installieren und für Docker konfigurieren ansible.builtin.apt: name: nvidia-container-toolkit state: present update_cache: true notify: configure nvidia runtime - name: Modell-Disk (scsi1) formatieren, falls leer (formatiert nie eine vorhandene Partition um) community.general.filesystem: dev: /dev/sdb fstype: ext4 opts: -L models when: ansible_devices.sdb is defined - name: Modell-Disk einhängen ansible.posix.mount: path: /srv/models src: LABEL=models fstype: ext4 state: mounted when: ansible_devices.sdb is defined - name: Textfile-Verzeichnis für node_exporter ansible.builtin.file: path: "{{ nvidia_textfile_dir }}" state: directory mode: "0755" - name: Xid-Exporter-Skript ansible.builtin.copy: src: "{{ playbook_dir }}/../../../../deploy/scripts/gpu-xid-textfile.sh" dest: /usr/local/bin/gpu-xid-textfile.sh mode: "0755" - name: systemd-Service und -Timer für Xid-Exporter ansible.builtin.template: src: "{{ item }}.j2" dest: "/etc/systemd/system/{{ item }}" mode: "0644" loop: [gpu-xid-textfile.service, gpu-xid-textfile.timer] notify: reload systemd - name: Timer aktivieren ansible.builtin.systemd: name: gpu-xid-textfile.timer enabled: true state: started daemon_reload: true - name: Neustart nach Treiberinstallation ansible.builtin.reboot: when: driver.changed