--- - name: Prepare base folders file: path: "{{ item }}" state: directory owner: "{{ jellyfin_user }}" group: "{{ jellyfin_user }}" mode: 0750 loop: - "{{ jellyfin_base_dir }}" - "{{ jellyfin_src_dir }}/{{ jellyfin_version }}" - "{{ jellyfin_conf_dir }}" - "{{ jellyfin_data_dir }}" - "{{ jellyfin_log_dir }}" - "{{ jellyfin_cache_dir }}" become: True become_user: root - block: - name: Install Jellyfin server unarchive: src: https://repo.jellyfin.org/releases/server/portable/versions/stable/combined/{{ jellyfin_version }}/jellyfin_{{ jellyfin_version }}.tar.gz dest: "{{ jellyfin_src_dir }}/{{ jellyfin_version }}" extra_opts: - --strip-components=2 remote_src: yes - name: Link 'v{{ jellyfin_version }}' to latest file: src: "{{ jellyfin_src_dir }}/{{ jellyfin_version }}/jellyfin" dest: "{{ jellyfin_base_dir }}/jellyfin-latest" state: link notify: __jellyfin_restart - name: Remove old version file: path: "{{ jellyfin_src_dir }}/{{ jellyfin_current_version }}" state: absent become: True become_user: "{{ jellyfin_user }}" when: jellyfin_version is version(jellyfin_current_version, ">") or jellyfin_current_version is version('0.0.0', "=") - name: Deploy global config files template: src: "opt/jellyfin/config/{{ item }}.j2" dest: "{{ jellyfin_conf_dir }}/{{ item }}" mode: 0600 loop: - "logging.json" notify: __jellyfin_restart become: True become_user: "{{ jellyfin_user }}" - block: - name: Write Jellyfin version to custom fact template: src: etc/ansible/facts.d/jellyfin.fact.j2 dest: /etc/ansible/facts.d/jellyfin.fact mode: 0644 - name: Copy sysconfig file template: src: "etc/sysconfig/jellyfin.j2" dest: "{{ __jellyfin_sysconfig }}" mode: 0600 notify: __jellyfin_restart - name: Copy systemd unit file template: src: "etc/systemd/system/jellyfin.service.j2" dest: "/etc/systemd/system/jellyfin.service" mode: 0644 notify: __jellyfin_restart - name: Ensure jellyfin service is up and running service: state: started daemon_reload: yes enabled: yes name: jellyfin become: True become_user: root