aboutsummaryrefslogtreecommitdiffstats
path: root/roles/jellyfin/tasks/main.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/jellyfin/tasks/main.yml')
-rw-r--r--roles/jellyfin/tasks/main.yml94
1 files changed, 94 insertions, 0 deletions
diff --git a/roles/jellyfin/tasks/main.yml b/roles/jellyfin/tasks/main.yml
new file mode 100644
index 0000000..0bb8b91
--- /dev/null
+++ b/roles/jellyfin/tasks/main.yml
@@ -0,0 +1,94 @@
+- name: install packages
+ dnf:
+ name: '{{ jellyfin_packages }}'
+ state: present
+
+- name: create installation directory
+ file:
+ path: '{{ jellyfin_install_dir }}'
+ state: directory
+
+- name: extract tarball
+ unarchive:
+ src: '{{ jellyfin_url }}'
+ remote_src: yes
+ dest: '{{ jellyfin_install_dir }}'
+ extra_opts:
+ - '--strip-components=2'
+ notify: restart jellyfin
+
+- name: generate systemd unit
+ template:
+ src: etc/systemd/system/jellyfin.service.j2
+ dest: /etc/systemd/system/jellyfin.service
+ notify: restart jellyfin
+ register: jellyfin_unit
+
+- name: reload systemd units
+ systemd:
+ daemon_reload: yes
+ when: jellyfin_unit.changed
+
+- name: generate sysconfig file
+ template:
+ src: etc/sysconfig/jellyfin.j2
+ dest: /etc/sysconfig/jellyfin
+ notify: restart jellyfin
+
+- name: create runtime directories
+ file:
+ path: '{{ item.path }}'
+ owner: '{{ jellyfin_user }}'
+ group: '{{ jellyfin_user }}'
+ mode: '{{ item.mode }}'
+ state: directory
+ loop:
+ - { path: '{{ jellyfin_home }}', mode: '0750' }
+ - { path: '{{ jellyfin_home }}/plugins', mode: '0750' }
+ - { path: '{{ jellyfin_home }}/plugins/configurations', mode: '0750' }
+ - { path: /var/cache/jellyfin, mode: '0750' }
+ - { path: /var/log/jellyfin, mode: '0755' }
+ - { path: '{{ jellyfin_conf_dir }}', mode: '0755' }
+
+- name: generate jellyfin network configuration
+ template:
+ src: '{{ jellyfin_conf_dir[1:] }}/network.xml.j2'
+ dest: '{{ jellyfin_conf_dir }}/network.xml'
+ owner: '{{ jellyfin_user }}'
+ group: '{{ jellyfin_user }}'
+ mode: 0644
+ notify: restart jellyfin
+
+- name: generate jellyfin LDAP configuration
+ template:
+ src: '{{ jellyfin_home[1:] }}/plugins/configurations/LDAP-Auth.xml.j2'
+ dest: '{{ jellyfin_home }}/plugins/configurations/LDAP-Auth.xml'
+ owner: '{{ jellyfin_user }}'
+ group: '{{ jellyfin_user }}'
+ mode: 0640
+ notify: restart jellyfin
+
+- import_tasks: freeipa.yml
+
+- name: enable jellyfin
+ systemd:
+ name: jellyfin
+ state: started
+ enabled: yes
+
+- name: allow apache to connect to jellyfin port
+ seport:
+ ports: '{{ jellyfin_port }}'
+ proto: tcp
+ setype: http_port_t
+ state: present
+ tags: selinux
+
+- name: open firewall ports
+ firewalld:
+ port: '{{ item }}'
+ permanent: yes
+ immediate: yes
+ state: enabled
+ loop: '{{ jellyfin_discovery_ports }}'
+ tags: firewalld