ansible-playbooks/jellyfin/playbook.yaml

84 lines
2.7 KiB
YAML
Raw Normal View History

2025-02-10 20:32:11 +02:00
- 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:
2025-02-16 12:02:34 +02:00
- name: Create cache directory
2025-02-10 20:32:11 +02:00
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