aboutsummaryrefslogtreecommitdiffstats
path: root/roles/jellyfin/tasks/main.yml
blob: 0bb8b91010c9d15612c0394550af378a9d8f5659 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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