I recently built an addition to my lab that is intended to mostly replace my Synology NAS1, and give a better home to my Plex container than my 2018 Mac mini. The comptuer is running Ubuntu 20.04 and has a nvidia Geforce GTX 1060. I chose the 1060 after refrring to this tool which gives nice estimates of of the Plex-specific capabilities enabled by the card. I wanted something that was available secondhand, had hardware h.265 support, and could handle a fair number of streams. 1060 ticked the right boxes.
rsyncing my media and volumes, I spent some time last night working on the Ansible role for launching the plex container while passing the GPU to the contiainer. I spent a bunch of time in Ansible’s documentation and with this guide by Samuel Kadolph.
- name: “Deploy Plex container” docker_container: name: plex hostname: plex image: plexinc/pms-docker:plexpass restart_policy: unless-stopped state: started ports: - 32400:32400 - 32400:32400/udp - 3005:3005 - 8324:8324 - 32469:32469 - 32469:32469/udp - 1900:1900 - 1900:1900/udp - 32410:32410 - 32410:32410/udp - 32412:32412 - 32412:32412/udp - 32413:32413 - 32413:32413/udp - 32414:32414 - 32414:32414/udp mounts: - source: /snoqualmie/media target: /media read_only: no type: bind - source: /seatac/plex/config target: /config read_only: no type: bind
- source: /seatac/plex/transcode target: /transcode read_only: no type: bind - source: /seatac/plex/backups target: /data/backups read_only: no type: bind - source: /seatac/plex/certs target: /data/certs read_only: no type: bind env: TZ: “America/Los_Angeles” PUID: “1001” PGID: “997” PLEX_CLAIM: “[claim key]” ADVERTISE_IP: “[public URL]” device_requests: - device_ids: 0 driver: nvidia capabilities: - gpu - compute - utility comparisons: env: strict
This is the part relevant to passing the GPU to the container, and the (lacking) documentation can be found [in the
device_requests section, here].(https://docs.ansible.com/ansible/latest/collections/community/general/docker_container_module.html#parameter-device_requests)
device_requests: - device_ids: 0 driver: nvidia capabilities: - gpu - compute - utility
device_ids is the ID of the GPU that is obtained from
capabilties are spelled out on nvidia’s repo, but
all doesn’t seem to work.
Hope this helps the next poor soul who decides this is a rabbit worth chasing.