Update 3 files
- /group_vars/all.yml - /roles/jellyfin/tasks/main.yml - /roles/jellyfin/templates/docker-compose.yml.j2
This commit is contained in:
parent
8a027c1ab7
commit
6fa82b35ed
@ -83,7 +83,10 @@ service_config_base: "/mnt/service"
|
|||||||
jellyfin_base_dir: "{{ service_config_base }}/jellyfin"
|
jellyfin_base_dir: "{{ service_config_base }}/jellyfin"
|
||||||
jellyfin_config_dir: "{{ jellyfin_base_dir }}/config"
|
jellyfin_config_dir: "{{ jellyfin_base_dir }}/config"
|
||||||
jellyfin_cache_dir: "{{ jellyfin_base_dir }}/cache"
|
jellyfin_cache_dir: "{{ jellyfin_base_dir }}/cache"
|
||||||
|
jellyfin_logs_dir: "{{ jellyfin_base_dir }}/logs"
|
||||||
|
jellyfin_media_path: "/mnt/video"
|
||||||
jellyfin_port: "45131"
|
jellyfin_port: "45131"
|
||||||
|
jellyfin_hw_acceleration: true
|
||||||
|
|
||||||
# Audiobookshelf
|
# Audiobookshelf
|
||||||
audiobookshelf_base_dir: "{{ service_config_base }}/audiobookshelf"
|
audiobookshelf_base_dir: "{{ service_config_base }}/audiobookshelf"
|
||||||
|
|||||||
53
roles/jellyfin/tasks/main.yml
Normal file
53
roles/jellyfin/tasks/main.yml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
- name: Create Jellyfin directories
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
mode: 0755
|
||||||
|
loop:
|
||||||
|
- "{{ jellyfin_base_dir }}"
|
||||||
|
- "{{ jellyfin_config_dir }}"
|
||||||
|
- "{{ jellyfin_cache_dir }}"
|
||||||
|
- "{{ jellyfin_logs_dir }}"
|
||||||
|
|
||||||
|
- name: Ensure media directory exists
|
||||||
|
file:
|
||||||
|
path: "{{ jellyfin_media_path }}"
|
||||||
|
state: directory
|
||||||
|
mode: 0755
|
||||||
|
|
||||||
|
- name: Deploy Jellyfin docker-compose.yml
|
||||||
|
template:
|
||||||
|
src: docker-compose.yml.j2
|
||||||
|
dest: "{{ jellyfin_base_dir }}/docker-compose.yml"
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
- name: Start Jellyfin services
|
||||||
|
shell: |
|
||||||
|
cd {{ jellyfin_base_dir }}
|
||||||
|
docker compose up -d
|
||||||
|
args:
|
||||||
|
executable: /bin/bash
|
||||||
|
|
||||||
|
- name: Wait for Jellyfin to start
|
||||||
|
pause:
|
||||||
|
seconds: 30
|
||||||
|
|
||||||
|
- name: Check Jellyfin container status
|
||||||
|
shell: docker ps --filter name=jellyfin
|
||||||
|
register: jellyfin_status
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: Show Jellyfin status
|
||||||
|
debug:
|
||||||
|
var: jellyfin_status.stdout
|
||||||
|
|
||||||
|
- name: Verify Jellyfin is accessible
|
||||||
|
uri:
|
||||||
|
url: "http://{{ ansible_host }}:{{ jellyfin_port }}"
|
||||||
|
status_code: 200
|
||||||
|
timeout: 60
|
||||||
|
register: jellyfin_accessible
|
||||||
|
until: jellyfin_accessible.status == 200
|
||||||
|
retries: 10
|
||||||
|
delay: 10
|
||||||
35
roles/jellyfin/templates/docker-compose.yml.j2
Normal file
35
roles/jellyfin/templates/docker-compose.yml.j2
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
jellyfin:
|
||||||
|
image: jellyfin/jellyfin:latest
|
||||||
|
container_name: jellyfin
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: "host"
|
||||||
|
environment:
|
||||||
|
- TZ={{ timezone }}
|
||||||
|
- JELLYFIN_PublishedServerUrl=http://{{ ansible_host }}:{{ jellyfin_port }}
|
||||||
|
volumes:
|
||||||
|
- {{ jellyfin_config_dir }}:/config
|
||||||
|
- {{ jellyfin_cache_dir }}:/cache
|
||||||
|
- {{ jellyfin_logs_dir }}:/log
|
||||||
|
- {{ jellyfin_media_path }}:/media:ro
|
||||||
|
{% if jellyfin_hw_acceleration %}
|
||||||
|
# Для аппаратного ускорения
|
||||||
|
- /dev/dri:/dev/dri
|
||||||
|
devices:
|
||||||
|
- /dev/dri/renderD128:/dev/dri/renderD128
|
||||||
|
- /dev/dri/card0:/dev/dri/card0
|
||||||
|
{% endif %}
|
||||||
|
ports:
|
||||||
|
- "{{ jellyfin_port }}:8096"
|
||||||
|
privileged: false
|
||||||
|
read_only: false
|
||||||
|
# Оптимизация для больших библиотек
|
||||||
|
tmpfs:
|
||||||
|
- /tmp
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 65535
|
||||||
|
hard: 65535
|
||||||
Loading…
Reference in New Issue
Block a user