jellyfin: Deploy Jellyfin media server
Jellyfin is a multimedia library manager. Clients can browse and stream music, movies, and TV shows from the server and play them locally (including in the browser).
This commit is contained in:
79
roles/jellyfin/tasks/deploy.yml
Normal file
79
roles/jellyfin/tasks/deploy.yml
Normal file
@@ -0,0 +1,79 @@
|
||||
- name: ensure jellyfin group exists
|
||||
group:
|
||||
name: jellyfin
|
||||
gid: 201
|
||||
system: true
|
||||
state: present
|
||||
tags:
|
||||
- user
|
||||
- group
|
||||
- name: ensure jellyfin user exists
|
||||
user:
|
||||
name: jellyfin
|
||||
uid: 201
|
||||
group: jellyfin
|
||||
system: true
|
||||
home: /
|
||||
createhome: false
|
||||
state: present
|
||||
tags:
|
||||
- user
|
||||
|
||||
- name: ensure jellyfin cache directory exists
|
||||
file:
|
||||
path: /var/cache/jellyfin
|
||||
owner: jellyfin
|
||||
group: jellyfin
|
||||
mode: u=rwx,go=
|
||||
state: directory
|
||||
tags:
|
||||
- datadir
|
||||
- name: ensure jellyfin data directory exists
|
||||
file:
|
||||
path: /var/lib/jellyfin
|
||||
owner: jellyfin
|
||||
group: jellyfin
|
||||
mode: u=rwx,og=rx
|
||||
state: directory
|
||||
tags:
|
||||
- datadir
|
||||
|
||||
- name: ensure jellyfin environment is configured
|
||||
template:
|
||||
src: jellyfin.env.j2
|
||||
dest: /etc/sysconfig/jellyfin
|
||||
owner: root
|
||||
group: root
|
||||
mode: u=rw,go=
|
||||
tags:
|
||||
- config
|
||||
|
||||
- name: ensure jellyfin.container systemd unit exists
|
||||
template:
|
||||
src: jellyfin.container.j2
|
||||
dest: /etc/containers/systemd/jellyfin.container
|
||||
owner: root
|
||||
group: root
|
||||
mode: u=rw,go=r
|
||||
notify:
|
||||
- reload systemd
|
||||
- restart jellyfin
|
||||
tags:
|
||||
- systemd
|
||||
- container
|
||||
|
||||
- name: flush handlers
|
||||
meta: flush_handlers
|
||||
|
||||
- name: ensure jellyfin starts at boot
|
||||
systemd:
|
||||
name: jellyfin
|
||||
enabled: true
|
||||
tags:
|
||||
- service
|
||||
- name: ensure jellyfin is running
|
||||
systemd:
|
||||
name: jellyfin
|
||||
state: started
|
||||
tags:
|
||||
- service
|
||||
19
roles/jellyfin/tasks/httpd-proxy.yml
Normal file
19
roles/jellyfin/tasks/httpd-proxy.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
- name: ensure apache is configured to proxy for jellyfin
|
||||
template:
|
||||
src: jellyfin.httpd.conf.j2
|
||||
dest: /etc/httpd/conf.d/jellyfin.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: u=rw,go=r
|
||||
notify:
|
||||
- reload httpd
|
||||
tags:
|
||||
- apache
|
||||
|
||||
- name: ensure selinux is configured for apache reverse proxy
|
||||
seboolean:
|
||||
name: httpd_can_network_connect
|
||||
state: true
|
||||
persistent: true
|
||||
tags:
|
||||
- selinux
|
||||
12
roles/jellyfin/tasks/install.yml
Normal file
12
roles/jellyfin/tasks/install.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
- name: ensure podman is installed
|
||||
package:
|
||||
name:
|
||||
- container-selinux
|
||||
- podman
|
||||
state: present
|
||||
|
||||
- name: ensure jellyfin container image is present
|
||||
podman_image:
|
||||
name: '{{ jellyfin_container_image }}:{{ jellyfin_version }}'
|
||||
state: present
|
||||
|
||||
9
roles/jellyfin/tasks/main.yml
Normal file
9
roles/jellyfin/tasks/main.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
- block:
|
||||
- import_tasks: install.yml
|
||||
tags:
|
||||
- install
|
||||
- import_tasks: deploy.yml
|
||||
- import_tasks: httpd-proxy.yml
|
||||
tags:
|
||||
- jellyfin
|
||||
|
||||
Reference in New Issue
Block a user