- Add Jellyfin backend to HAProxy configuration on titania.incus - Simplify deployment by using community.docker.docker_compose_v2 module - Consolidate handlers and remove redundant Docker commands - Update Jellyfin systemd service from oneshot to simple type - Remove PUID/PGID environment variables from docker-compose template
87 lines
2.2 KiB
YAML
87 lines
2.2 KiB
YAML
---
|
|
- name: Deploy Jellyfin
|
|
hosts: ubuntu
|
|
become: true
|
|
vars:
|
|
ansible_python_interpreter: /usr/bin/python3
|
|
tasks:
|
|
- name: Check if host has jellyfin service
|
|
ansible.builtin.set_fact:
|
|
has_jellyfin: "{{ 'jellyfin' in services | default([]) }}"
|
|
|
|
- name: Skip hosts without jellyfin service
|
|
ansible.builtin.meta: end_host
|
|
when: not has_jellyfin
|
|
|
|
- name: Create jellyfin group
|
|
ansible.builtin.group:
|
|
name: "{{ jellyfin_group }}"
|
|
gid: "{{ jellyfin_gid }}"
|
|
|
|
- name: Create jellyfin user
|
|
ansible.builtin.user:
|
|
name: "{{ jellyfin_user }}"
|
|
comment: "Jellyfin service account"
|
|
group: "{{ jellyfin_group }}"
|
|
uid: "{{ jellyfin_uid }}"
|
|
home: "{{ jellyfin_directory }}"
|
|
system: true
|
|
shell: /bin/bash
|
|
|
|
- name: Add keeper_user to jellyfin group
|
|
ansible.builtin.user:
|
|
name: "{{ keeper_user }}"
|
|
groups: "{{ jellyfin_group }}"
|
|
append: true
|
|
|
|
- name: Create Jellyfin directories
|
|
ansible.builtin.file:
|
|
path: "{{ item }}"
|
|
owner: "{{ jellyfin_user }}"
|
|
group: "{{ jellyfin_group }}"
|
|
state: directory
|
|
mode: '0750'
|
|
loop:
|
|
- "{{ jellyfin_directory }}"
|
|
- "{{ jellyfin_config_dir }}"
|
|
- "{{ jellyfin_cache_dir }}"
|
|
|
|
- name: Deploy Docker Compose configuration
|
|
ansible.builtin.template:
|
|
src: docker-compose.yml.j2
|
|
dest: "{{ jellyfin_directory }}/docker-compose.yml"
|
|
owner: "{{ jellyfin_user }}"
|
|
group: "{{ jellyfin_group }}"
|
|
mode: '0644'
|
|
notify:
|
|
- Restart Jellyfin
|
|
|
|
- name: Create systemd service for Docker Compose
|
|
ansible.builtin.template:
|
|
src: jellyfin.service.j2
|
|
dest: /etc/systemd/system/jellyfin.service
|
|
mode: '0644'
|
|
notify:
|
|
- Reload systemd
|
|
- Enable Jellyfin
|
|
|
|
handlers:
|
|
- name: Reload systemd
|
|
ansible.builtin.systemd:
|
|
daemon_reload: true
|
|
|
|
- name: Restart Jellyfin
|
|
community.docker.docker_compose_v2:
|
|
project_src: "{{ jellyfin_directory }}"
|
|
pull: always
|
|
state: present
|
|
become: true
|
|
become_user: "{{ jellyfin_user }}"
|
|
|
|
- name: Enable Jellyfin
|
|
ansible.builtin.systemd:
|
|
name: jellyfin
|
|
enabled: true
|
|
state: started
|
|
daemon_reload: true
|