Skip to content

Commit

Permalink
nvidia: use nvidia-persistenced service
Browse files Browse the repository at this point in the history
  • Loading branch information
saltydk committed Feb 10, 2024
1 parent 6858f3c commit 060cb37
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 10 deletions.
2 changes: 1 addition & 1 deletion roles/docker/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ docker_ipv6: "{{ dns.ipv6 }}"

# Service

docker_service_after: "{{ mergerfs_service_name }}"
docker_service_after: "{{ mergerfs_service_name + (' nvidia-persistenced.service' if gpu.nvidia else '') }}"

docker_service_sleep: "{{ 0 if continuous_integration else 120 }}"

Expand Down
3 changes: 0 additions & 3 deletions roles/docker/templates/override.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,5 @@ Requires={{ docker_service_after }}
{% endif %}

[Service]
{% if gpu.nvidia %}
ExecStartPre=/usr/bin/nvidia-ctk system create-dev-char-symlinks --create-all --load-kernel-modules --create-device-nodes
{% endif %}
ExecStartPre=/bin/sleep {{ docker_service_sleep }}

12 changes: 12 additions & 0 deletions roles/nvidia/files/nvidia-persistenced.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[Unit]
Description=NVIDIA Persistence Daemon
Wants=syslog.target

[Service]
Type=forking
ExecStart=/usr/bin/nvidia-persistenced
ExecStartPre=/usr/bin/nvidia-ctk system create-dev-char-symlinks --create-all --load-kernel-modules --create-device-nodes
ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced

[Install]
WantedBy=multi-user.target
23 changes: 17 additions & 6 deletions roles/nvidia/tasks/subtasks/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,23 @@
state: stopped
when: docker_service_running

- name: "Daemon | Import override file"
ansible.builtin.template:
src: "/srv/git/saltbox/roles/docker/templates/override.conf.j2"
dest: "/etc/systemd/system/docker.service.d/override.conf"
- name: Docker | Import 'nvidia-persistenced.service'
ansible.builtin.copy:
src: nvidia-persistenced.service
dest: "/etc/systemd/system/nvidia-persistenced.service"
owner: "root"
group: "root"
mode: "0644"
force: "{{ docker_service_force }}"

- name: Docker | Run systemd daemon-reload
ansible.builtin.systemd_service:
daemon_reload: true

- name: Docker | Start nvidia-persistenced service
ansible.builtin.systemd_service:
name: nvidia-persistenced.service
state: started
enabled: true

# https://github.com/linkernetworks/vortex-installer/blob/master/roles/common/tasks/nvidia-docker.yml
- name: Docker | Add runtime to '/etc/docker/daemon.json'
Expand All @@ -101,7 +112,7 @@
state: started
when: docker_service_running

- name: Docker Service Running
- name: Docker | Docker Service Running
when: docker_service_running and (docker_running_containers.stdout | trim | length > 0)
block:
- name: "Docker | Initialize Gluetun variable"
Expand Down

0 comments on commit 060cb37

Please sign in to comment.