untested: addid ansible
This commit is contained in:
parent
ab5006ca8f
commit
594ef7a65d
34
compose.yml
34
compose.yml
@ -1,34 +0,0 @@
|
||||
version: '3.5'
|
||||
services:
|
||||
jellyfin:
|
||||
image: jellyfin/jellyfin:10.11.6
|
||||
user: 0:0
|
||||
networks:
|
||||
- proxy
|
||||
volumes:
|
||||
- config:/config
|
||||
- cache:/cache
|
||||
- media:/media
|
||||
restart: 'unless-stopped'
|
||||
environment:
|
||||
- JELLYFIN_PublishedServerUrl=https://jellyfin.urmel.de
|
||||
labels:
|
||||
traefik.enable: true
|
||||
traefik.http.routers.jellyfin.rule: "Host(`jellyfin.urmel.de`)"
|
||||
traefik.http.routers.jellyfin.tls: true
|
||||
traefik.http.routers.jellyfin.tls.certResolver: hetzner
|
||||
traefik.http.services.jellyfin-https.loadbalancer.server.port: 8096
|
||||
|
||||
volumes:
|
||||
config:
|
||||
cache:
|
||||
media:
|
||||
driver_opts:
|
||||
type: nfs4
|
||||
o: addr=217.100.0.2,rw,noatime,tcp
|
||||
device: ":/mnt/Main/jellyfinData"
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
name: traefik_exposed
|
||||
external: true
|
||||
11
defaults/main.yml
Normal file
11
defaults/main.yml
Normal file
@ -0,0 +1,11 @@
|
||||
path: /srv/{{ role_name }}
|
||||
|
||||
jellyfin_override: {}
|
||||
jellyfin_defaults:
|
||||
version: "10.11.6"
|
||||
url: ""
|
||||
data_path: ""
|
||||
networkmount:
|
||||
host: ""
|
||||
host_path: ""
|
||||
args: ""
|
||||
9
handlers/main.yml
Normal file
9
handlers/main.yml
Normal file
@ -0,0 +1,9 @@
|
||||
- name: restart container
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ path }}"
|
||||
project_name: "{{ role_name }}"
|
||||
recreate: "always"
|
||||
services: ["jellyfin"]
|
||||
state: "restarted"
|
||||
when: not _jellyfin_already_restarted
|
||||
|
||||
20
meta/main.yml
Normal file
20
meta/main.yml
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: "Niklas Freese <niklas@urmel.de>"
|
||||
description: jellyfin
|
||||
company: "Urmel Services"
|
||||
license: AGPL-3.0-or-later
|
||||
min_ansible_version: 2.1
|
||||
# If this a Container Enabled role, provide the minimum Ansible Container version.
|
||||
# min_ansible_container_version:
|
||||
|
||||
galaxy_tags: []
|
||||
# List tags for your role here, one per line. A tag is a keyword that describes
|
||||
# and categorizes the role. Users find roles by searching for tags. Be sure to
|
||||
# remove the '[]' above, if you add tags to this list.
|
||||
#
|
||||
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
|
||||
# Maximum 20 tags per role.
|
||||
|
||||
# dependencies:
|
||||
# - role: base
|
||||
35
tasks/main.yml
Normal file
35
tasks/main.yml
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
- name: "set local variables from overrides and defaults"
|
||||
set_fact:
|
||||
jellyfin: "{{ (jellyfin_defaults | combine(jellyfin_override, recursive=True)) if jellyfin_override else jellyfin_defaults }}"
|
||||
|
||||
- name: ensure that path exists
|
||||
file:
|
||||
path: "{{ path }}/config/jellyfin"
|
||||
state: directory
|
||||
|
||||
- name: template compose
|
||||
template:
|
||||
src: compose.yml.j2
|
||||
dest: "{{ path }}/compose.yml"
|
||||
|
||||
- import_role:
|
||||
name: storage_mount
|
||||
vars:
|
||||
storagebox_override:
|
||||
host: "{{ jellyfin.networkmount.host }}"
|
||||
host_path: "{{ jellyfin.networkmount.host_path }}"
|
||||
args: "{{ jellyfin.networkmount.args }}"
|
||||
dest_path: "{{ jellyfin.data_path }}"
|
||||
when: jellyfin.networkmount.host | length > 1
|
||||
|
||||
|
||||
- name: ensure containers are running
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ path }}"
|
||||
project_name: "{{ role_name }}"
|
||||
state: "present"
|
||||
pull: "always"
|
||||
wait: true
|
||||
services: [ 'jellyfin' ]
|
||||
register: _compose_result
|
||||
25
templates/compose.yml.j2
Normal file
25
templates/compose.yml.j2
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
services:
|
||||
jellyfin:
|
||||
image: jellyfin/jellyfin:{{ jellyfin.version }}
|
||||
user: 0:0
|
||||
networks:
|
||||
- proxy
|
||||
volumes:
|
||||
- ./config/jellyfin:/config
|
||||
- ./cache:/cache
|
||||
- {{ jellyfin.data_path }}:/media
|
||||
restart: 'unless-stopped'
|
||||
environment:
|
||||
- JELLYFIN_PublishedServerUrl=https://{{ jellyfin.urmel }}
|
||||
labels:
|
||||
traefik.enable: true
|
||||
traefik.http.routers.jellyfin.rule: "Host(`{{ jellyfin.urmel }}`)"
|
||||
traefik.http.routers.jellyfin.tls: true
|
||||
traefik.http.routers.jellyfin.tls.certResolver: hetzner
|
||||
traefik.http.services.jellyfin-https.loadbalancer.server.port: 8096
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
name: traefik_exposed
|
||||
external: true
|
||||
Loading…
x
Reference in New Issue
Block a user