- name: Install Jellyfin hosts: nuculabs become: true become_method: sudo vars_files: - variables.yaml tasks: - name: Enable hardware acceleration for containers ansible.builtin.command: cmd: setsebool -P container_use_dri_devices 1 when: enable_hardware_acceleration # Create necessary directories. - name: "Create directories" block: - name: Create data directory ansible.builtin.file: path: "{{ jellyfin.cache_directory }}" state: directory mode: "0755" ignore_errors: true - name: Create config directory ansible.builtin.file: path: "{{ jellyfin.config_directory }}" state: directory mode: "0754" ignore_errors: true - name: Create media directory ansible.builtin.file: path: "{{ jellyfin.media_directory }}" state: directory mode: "0754" ignore_errors: true - name: Setup Container block: - name: Ensure Podman is installed ansible.builtin.package: name: podman state: present - name: Ensure Udica is installed ansible.builtin.package: name: udica state: present - name: Ensure container-selinux is installed ansible.builtin.package: name: container-selinux state: present - name: Pull image containers.podman.podman_image: name: "{{ jellyfin.container_image }}" state: present - name: "Copy container" ansible.builtin.template: src: ./templates/container/jellyfin.container.j2 dest: /etc/containers/systemd/jellyfin.container mode: "0644" - name: Reload systemd ansible.builtin.command: cmd: systemctl daemon-reload - name: Enable service ansible.builtin.systemd_service: name: jellyfin.service state: started enabled: true - name: Setup firewall block: - name: Create firewalld service ansible.builtin.copy: src: ./templates/firewall/jellyfin.xml dest: /etc/firewalld/services/jellyfin.xml mode: "0644" - name: Reload firewalld ansible.builtin.command: argv: - firewall-cmd - --reload - name: Enable firewalld service ansible.posix.firewalld: service: jellyfin state: enabled permanent: true immediate: true offline: true when: setup_firewall