From fe3b41e05700a5d3785d0d25859bba6836f0d4fa Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Fri, 9 Aug 2019 23:49:29 -0400 Subject: [PATCH] Add Jellyfin role --- package-jellyfin/files/logging.json | 13 +++ package-jellyfin/handlers/main.yml | 5 ++ package-jellyfin/tasks/main.yml | 87 +++++++++++++++++++++ package-jellyfin/templates/jellyfin.list.j2 | 1 + 4 files changed, 106 insertions(+) create mode 100644 package-jellyfin/files/logging.json create mode 100644 package-jellyfin/handlers/main.yml create mode 100644 package-jellyfin/tasks/main.yml create mode 100644 package-jellyfin/templates/jellyfin.list.j2 diff --git a/package-jellyfin/files/logging.json b/package-jellyfin/files/logging.json new file mode 100644 index 0000000..5e018f7 --- /dev/null +++ b/package-jellyfin/files/logging.json @@ -0,0 +1,13 @@ +{ + "Serilog": { + "MinimumLevel": "Debug", + "WriteTo": [ + { + "Name": "Console", + "Args": { + "outputTemplate": "[{Level:u3}] {Message:lj}{NewLine}{Exception}" + } + } + ] + } +} diff --git a/package-jellyfin/handlers/main.yml b/package-jellyfin/handlers/main.yml new file mode 100644 index 0000000..e49ad1d --- /dev/null +++ b/package-jellyfin/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: restart jellyfin + service: + name: "jellyfin" + state: restarted diff --git a/package-jellyfin/tasks/main.yml b/package-jellyfin/tasks/main.yml new file mode 100644 index 0000000..1a2d2f5 --- /dev/null +++ b/package-jellyfin/tasks/main.yml @@ -0,0 +1,87 @@ +--- +- name: install dependency packages + apt: + name: + - imagemagick + - mono-runtime + - mediainfo + - libsqlite3-dev + - mesa-va-drivers + - firmware-amd-graphics + - firmware-linux-nonfree + - xserver-xorg-video-amdgpu + - libdrm-amdgpu1 + - vainfo + - libva-dev + - pciutils + - radeontop + state: latest + +- name: install Jellyfin repository + template: + src: "jellyfin.list.j2" + dest: "/etc/apt/sources.list.d/jellyfin.list" + register: initial_install + +- name: add key for Jellyfin repository + apt_key: + url: "https://repo.jellyfin.org/debian/jellyfin_team.gpg.key" + id: "1DE21A7B" + state: present + +- name: update apt cache + apt: + update_cache: yes + +- name: install Jellyfin application packages + apt: + name: + - jellyfin + - jellyfin-ffmpeg + state: latest + +- name: add Jellyfin user to the video group + user: + name: "jellyfin" + groups: "video" + append: yes + +- name: stop Jellyfin daemon (initial install only) + service: + name: "jellyfin" + state: stopped + when: initial_install.changed + +- name: move Jellyfin data directory to /srv (initial install only) + command: mv /var/lib/jellyfin /srv/jellyfin + args: + creates: /srv/jellyfin + when: initial_install.changed + +- name: add symlink to Jellyfin data directory (initial install only) + file: + dest: "/var/lib/jellyfin" + src: "/srv/jellyfin" + state: link + force: yes + when: initial_install.changed + +- name: install custom Jellyfin server configs + copy: + src: "{{ item }}" + dest: "/etc/jellyfin/{{ item }}" + owner: "jellyfin" + group: "jellyfin" + mode: "0640" + notify: restart jellyfin + with_items: + - logging.json + +- name: start and enable services + service: + name: "{{ item }}" + state: started + enabled: yes + with_items: + - jellyfin + diff --git a/package-jellyfin/templates/jellyfin.list.j2 b/package-jellyfin/templates/jellyfin.list.j2 new file mode 100644 index 0000000..2e15e2c --- /dev/null +++ b/package-jellyfin/templates/jellyfin.list.j2 @@ -0,0 +1 @@ +deb https://repo.jellyfin.org/debian {{ ansible_distribution_release }} main