Cloned radarr role to other roles
This commit is contained in:
@@ -1,2 +1,3 @@
|
|||||||
media_storage_mnt: /mnt/storage
|
media_storage_mnt: /mnt/storage
|
||||||
|
media_group: media
|
||||||
media_gid: 997
|
media_gid: 997
|
||||||
|
29
ansible/roles/lidarr/tasks/main.yml
Normal file
29
ansible/roles/lidarr/tasks/main.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
- name: Create service user
|
||||||
|
user:
|
||||||
|
name: "{{ role_name }}"
|
||||||
|
groups: "{{ media_group }}"
|
||||||
|
append: yes
|
||||||
|
register: service_user
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Create install directory
|
||||||
|
file:
|
||||||
|
path: "{{ install_directory }}/{{ role_name }}"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ docker_user }}"
|
||||||
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Copy docker-compose file to destination
|
||||||
|
template:
|
||||||
|
src: docker-compose.yml
|
||||||
|
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
||||||
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
|
validate: docker-compose -f %s config
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Start docker container
|
||||||
|
community.docker.docker_compose:
|
||||||
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||||
|
pull: true
|
||||||
|
remove_orphans: yes
|
24
ansible/roles/lidarr/templates/docker-compose.yml
Normal file
24
ansible/roles/lidarr/templates/docker-compose.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
version: "{{ docker_compose_version }}"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
{{ role_name }}:
|
||||||
|
container_name: "{{ role_name }}"
|
||||||
|
image: lscr.io/linuxserver/lidarr:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- traefik
|
||||||
|
environment:
|
||||||
|
- "PUID={{ service_user.uid }}"
|
||||||
|
- "PGID={{ media_gid }}"
|
||||||
|
- "TZ={{ timezone }}"
|
||||||
|
volumes:
|
||||||
|
- "{{ data_dir }}/{{ role_name }}:/config"
|
||||||
|
- "{{ media_storage_mnt }}/data:/data"
|
||||||
|
labels:
|
||||||
|
traefik.enable: true
|
||||||
|
traefik.http.routers.{{ role_name }}.rule: "Host(`{{ role_name }}.local.{{ personal_domain }}`)"
|
||||||
|
traefik.http.routers.{{ role_name }}.middlewares: lan-whitelist@file
|
@@ -1,6 +1,6 @@
|
|||||||
- name: Create install directory
|
- name: Create install directory
|
||||||
file:
|
file:
|
||||||
path: "{{ install_directory }}/radarr"
|
path: "{{ install_directory }}/{{ role_name }}"
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{ docker_user }}"
|
owner: "{{ docker_user }}"
|
||||||
mode: "{{ docker_compose_directory_mask }}"
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
@@ -9,13 +9,13 @@
|
|||||||
- name: Copy docker-compose file to destination
|
- name: Copy docker-compose file to destination
|
||||||
template:
|
template:
|
||||||
src: docker-compose.yml
|
src: docker-compose.yml
|
||||||
dest: "{{ install_directory }}/radarr/docker-compose.yml"
|
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
validate: docker-compose -f %s config
|
validate: docker-compose -f %s config
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Start docker container
|
- name: Start docker container
|
||||||
community.docker.docker_compose:
|
community.docker.docker_compose:
|
||||||
project_src: "{{ install_directory }}/radarr"
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||||
pull: true
|
pull: true
|
||||||
remove_orphans: yes
|
remove_orphans: yes
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
|
- name: Create service user
|
||||||
|
user:
|
||||||
|
name: "{{ role_name }}"
|
||||||
|
register: service_user
|
||||||
|
become: true
|
||||||
|
|
||||||
- name: Create install directory
|
- name: Create install directory
|
||||||
file:
|
file:
|
||||||
path: "{{ install_directory }}/radarr"
|
path: "{{ install_directory }}/{{ role_name }}"
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{ docker_user }}"
|
owner: "{{ docker_user }}"
|
||||||
mode: "{{ docker_compose_directory_mask }}"
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
@@ -9,13 +15,13 @@
|
|||||||
- name: Copy docker-compose file to destination
|
- name: Copy docker-compose file to destination
|
||||||
template:
|
template:
|
||||||
src: docker-compose.yml
|
src: docker-compose.yml
|
||||||
dest: "{{ install_directory }}/radarr/docker-compose.yml"
|
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
validate: docker-compose -f %s config
|
validate: docker-compose -f %s config
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Start docker container
|
- name: Start docker container
|
||||||
community.docker.docker_compose:
|
community.docker.docker_compose:
|
||||||
project_src: "{{ install_directory }}/radarr"
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||||
pull: true
|
pull: true
|
||||||
remove_orphans: yes
|
remove_orphans: yes
|
||||||
|
@@ -5,18 +5,18 @@ networks:
|
|||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
overseerr:
|
{{ role_name }}:
|
||||||
container_name: overseerr
|
container_name: "{{ role_name }}"
|
||||||
image: lscr.io/linuxserver/overseerr:latest
|
image: lscr.io/linuxserver/overseerr:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- traefik
|
- traefik
|
||||||
environment:
|
environment:
|
||||||
- PUID={{ primary_uid }}
|
- "PUID={{ service_user.uid }}"
|
||||||
- PGID={{ primary_gid }}
|
- "PGID={{ service_user.uid }}"
|
||||||
- TZ={{ timezone }}
|
- "TZ={{ timezone }}"
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/overseerr:/config"
|
- "{{ data_dir }}/{{ role_name }}:/config"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: true
|
traefik.enable: true
|
||||||
traefik.http.routers.overseerr.rule: "Host(`overseerr.{{ personal_domain }}`)"
|
traefik.http.routers.{{ role_name }}.rule: "Host(`{{ role_name }}.{{ personal_domain }}`)"
|
||||||
|
@@ -1,6 +1,14 @@
|
|||||||
|
- name: Create service user
|
||||||
|
user:
|
||||||
|
name: "{{ role_name }}"
|
||||||
|
groups: "{{ media_group }}"
|
||||||
|
append: yes
|
||||||
|
register: service_user
|
||||||
|
become: true
|
||||||
|
|
||||||
- name: Create install directory
|
- name: Create install directory
|
||||||
file:
|
file:
|
||||||
path: "{{ install_directory }}/prowlarr"
|
path: "{{ install_directory }}/{{ role_name }}"
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{ docker_user }}"
|
owner: "{{ docker_user }}"
|
||||||
mode: "{{ docker_compose_directory_mask }}"
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
@@ -9,13 +17,13 @@
|
|||||||
- name: Copy docker-compose file to destination
|
- name: Copy docker-compose file to destination
|
||||||
template:
|
template:
|
||||||
src: docker-compose.yml
|
src: docker-compose.yml
|
||||||
dest: "{{ install_directory }}/prowlarr/docker-compose.yml"
|
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
validate: docker-compose -f %s config
|
validate: docker-compose -f %s config
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Start docker container
|
- name: Start docker container
|
||||||
community.docker.docker_compose:
|
community.docker.docker_compose:
|
||||||
project_src: "{{ install_directory }}/prowlarr"
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||||
pull: true
|
pull: true
|
||||||
remove_orphans: yes
|
remove_orphans: yes
|
||||||
|
@@ -5,20 +5,20 @@ networks:
|
|||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
prowlarr:
|
{{ role_name }}:
|
||||||
container_name: prowlarr
|
container_name: "{{ role_name }}"
|
||||||
image: lscr.io/linuxserver/prowlarr:latest
|
image: lscr.io/linuxserver/prowlarr:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- traefik
|
- traefik
|
||||||
environment:
|
environment:
|
||||||
- PUID={{ primary_uid }}
|
- "PUID={{ service_user.uid }}"
|
||||||
- PGID={{ media_gid }}
|
- "PGID={{ media_gid }}"
|
||||||
- TZ={{ timezone }}
|
- "TZ={{ timezone }}"
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/prowlarr:/config"
|
- "{{ data_dir }}/{{ role_name }}:/config"
|
||||||
- "{{ media_storage_mnt }}/data:/data"
|
- "{{ media_storage_mnt }}/data:/data"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: true
|
traefik.enable: true
|
||||||
traefik.http.routers.prowlarr.rule: "Host(`prowlarr.local.{{ personal_domain }}`)"
|
traefik.http.routers.{{ role_name }}.rule: "Host(`{{ role_name }}.local.{{ personal_domain }}`)"
|
||||||
traefik.http.routers.prowlarr.middlewares: lan-whitelist@file
|
traefik.http.routers.{{ role_name }}.middlewares: lan-whitelist@file
|
||||||
|
@@ -1,8 +1,6 @@
|
|||||||
- name: Install basic packages
|
- name: Create media group
|
||||||
ansible.builtin.package:
|
group:
|
||||||
name: "{{ item }}"
|
name: "{{ media_group }}"
|
||||||
loop:
|
gid: "{{ media_gid }}"
|
||||||
- vim
|
state: present
|
||||||
- doas
|
|
||||||
- git
|
|
||||||
become: true
|
become: true
|
||||||
|
@@ -1,6 +1,14 @@
|
|||||||
|
- name: Create service user
|
||||||
|
user:
|
||||||
|
name: "{{ role_name }}"
|
||||||
|
groups: "{{ media_group }}"
|
||||||
|
append: yes
|
||||||
|
register: service_user
|
||||||
|
become: true
|
||||||
|
|
||||||
- name: Create install directory
|
- name: Create install directory
|
||||||
file:
|
file:
|
||||||
path: "{{ install_directory }}/radarr"
|
path: "{{ install_directory }}/{{ role_name }}"
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{ docker_user }}"
|
owner: "{{ docker_user }}"
|
||||||
mode: "{{ docker_compose_directory_mask }}"
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
@@ -9,13 +17,13 @@
|
|||||||
- name: Copy docker-compose file to destination
|
- name: Copy docker-compose file to destination
|
||||||
template:
|
template:
|
||||||
src: docker-compose.yml
|
src: docker-compose.yml
|
||||||
dest: "{{ install_directory }}/radarr/docker-compose.yml"
|
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
validate: docker-compose -f %s config
|
validate: docker-compose -f %s config
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Start docker container
|
- name: Start docker container
|
||||||
community.docker.docker_compose:
|
community.docker.docker_compose:
|
||||||
project_src: "{{ install_directory }}/radarr"
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||||
pull: true
|
pull: true
|
||||||
remove_orphans: yes
|
remove_orphans: yes
|
||||||
|
@@ -5,20 +5,20 @@ networks:
|
|||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
qbittorrent:
|
{{ role_name }}:
|
||||||
container_name: qbittorrent
|
container_name: "{{ role_name }}"
|
||||||
image: lscr.io/linuxserver/qbittorrent:libtorrentv1
|
image: lscr.io/linuxserver/qbittorrent:libtorrentv1
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
network_mode: "container:gluetun"
|
networks:
|
||||||
|
- traefik
|
||||||
environment:
|
environment:
|
||||||
- PUID={{ primary_uid }}
|
- "PUID={{ service_user.uid }}"
|
||||||
- PGID={{ media_gid }}
|
- "PGID={{ media_gid }}"
|
||||||
- TZ={{ timezone }}
|
- "TZ={{ timezone }}"
|
||||||
- DOCKER_MODS=arafatamim/linuxserver-io-mod-vuetorrent
|
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/qbittorrent:/config"
|
- "{{ data_dir }}/{{ role_name }}:/config"
|
||||||
- "{{ media_storage_mnt }}/data/torrents:/downloads"
|
- "{{ media_storage_mnt }}/data/torrents:/downloads"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: true
|
traefik.enable: true
|
||||||
traefik.http.routers.qbittorrent.rule: "Host(`qbittorrent.local.{{ personal_domain }}`)"
|
traefik.http.routers.{{ role_name }}.rule: "Host(`{{ role_name }}.local.{{ personal_domain }}`)"
|
||||||
traefik.http.routers.qbittorrent.middlewares: lan-whitelist@file
|
traefik.http.routers.{{ role_name }}.middlewares: lan-whitelist@file
|
||||||
|
@@ -1,6 +1,14 @@
|
|||||||
|
- name: Create service user
|
||||||
|
user:
|
||||||
|
name: "{{ role_name }}"
|
||||||
|
groups: "{{ media_group }}"
|
||||||
|
append: yes
|
||||||
|
register: service_user
|
||||||
|
become: true
|
||||||
|
|
||||||
- name: Create install directory
|
- name: Create install directory
|
||||||
file:
|
file:
|
||||||
path: "{{ install_directory }}/radarr"
|
path: "{{ install_directory }}/{{ role_name }}"
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{ docker_user }}"
|
owner: "{{ docker_user }}"
|
||||||
mode: "{{ docker_compose_directory_mask }}"
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
@@ -9,13 +17,13 @@
|
|||||||
- name: Copy docker-compose file to destination
|
- name: Copy docker-compose file to destination
|
||||||
template:
|
template:
|
||||||
src: docker-compose.yml
|
src: docker-compose.yml
|
||||||
dest: "{{ install_directory }}/radarr/docker-compose.yml"
|
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
validate: docker-compose -f %s config
|
validate: docker-compose -f %s config
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Start docker container
|
- name: Start docker container
|
||||||
community.docker.docker_compose:
|
community.docker.docker_compose:
|
||||||
project_src: "{{ install_directory }}/radarr"
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||||
pull: true
|
pull: true
|
||||||
remove_orphans: yes
|
remove_orphans: yes
|
||||||
|
@@ -5,20 +5,20 @@ networks:
|
|||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
radarr:
|
{{ role_name }}:
|
||||||
container_name: radarr
|
container_name: "{{ role_name }}"
|
||||||
image: lscr.io/linuxserver/radarr:latest
|
image: lscr.io/linuxserver/radarr:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- traefik
|
- traefik
|
||||||
environment:
|
environment:
|
||||||
- PUID={{ primary_uid }}
|
- "PUID={{ service_user.uid }}"
|
||||||
- PGID={{ media_gid }}
|
- "PGID={{ media_gid }}"
|
||||||
- TZ={{ timezone }}
|
- "TZ={{ timezone }}"
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/radarr:/config"
|
- "{{ data_dir }}/{{ role_name }}:/config"
|
||||||
- "{{ media_storage_mnt }}/data:/data"
|
- "{{ media_storage_mnt }}/data:/data"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: true
|
traefik.enable: true
|
||||||
traefik.http.routers.radarr.rule: "Host(`radarr.local.{{ personal_domain }}`)"
|
traefik.http.routers.{{ role_name }}.rule: "Host(`{{ role_name }}.local.{{ personal_domain }}`)"
|
||||||
traefik.http.routers.radarr.middlewares: lan-whitelist@file
|
traefik.http.routers.{{ role_name }}.middlewares: lan-whitelist@file
|
||||||
|
@@ -1,6 +1,14 @@
|
|||||||
|
- name: Create service user
|
||||||
|
user:
|
||||||
|
name: "{{ role_name }}"
|
||||||
|
groups: "{{ media_group }}"
|
||||||
|
append: yes
|
||||||
|
register: service_user
|
||||||
|
become: true
|
||||||
|
|
||||||
- name: Create install directory
|
- name: Create install directory
|
||||||
file:
|
file:
|
||||||
path: "{{ install_directory }}/sonarr"
|
path: "{{ install_directory }}/{{ role_name }}"
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{ docker_user }}"
|
owner: "{{ docker_user }}"
|
||||||
mode: "{{ docker_compose_directory_mask }}"
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
@@ -9,13 +17,13 @@
|
|||||||
- name: Copy docker-compose file to destination
|
- name: Copy docker-compose file to destination
|
||||||
template:
|
template:
|
||||||
src: docker-compose.yml
|
src: docker-compose.yml
|
||||||
dest: "{{ install_directory }}/sonarr/docker-compose.yml"
|
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
validate: docker-compose -f %s config
|
validate: docker-compose -f %s config
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: Start docker container
|
- name: Start docker container
|
||||||
community.docker.docker_compose:
|
community.docker.docker_compose:
|
||||||
project_src: "{{ install_directory }}/sonarr"
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||||
pull: true
|
pull: true
|
||||||
remove_orphans: yes
|
remove_orphans: yes
|
||||||
|
@@ -5,20 +5,20 @@ networks:
|
|||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
sonarr:
|
"{{ role_name }}":
|
||||||
container_name: sonarr
|
container_name: "{{ role_name }}"
|
||||||
image: lscr.io/linuxserver/sonarr:develop
|
image: "lscr.io/linuxserver/sonarr:develop"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- traefik
|
- traefik
|
||||||
environment:
|
environment:
|
||||||
- PUID={{ primary_uid }}
|
- "PUID={{ service_user.uid }}"
|
||||||
- PGID={{ media_gid }}
|
- "PGID={{ media_gid }}"
|
||||||
- TZ={{ timezone }}
|
- "TZ={{ timezone }}"
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/sonarr:/config"
|
- "{{ data_dir }}/{{ role_name }}:/config"
|
||||||
- "{{ media_storage_mnt }}/data:/data"
|
- "{{ media_storage_mnt }}/data:/data"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: true
|
traefik.enable: true
|
||||||
traefik.http.routers.sonarr.rule: "Host(`sonarr.local.{{ personal_domain }}`)"
|
traefik.http.routers.{{ role_name }}.rule: "Host(`{{ role_name }}.local.{{ personal_domain }}`)"
|
||||||
traefik.http.routers.sonarr.middlewares: lan-whitelist@file
|
traefik.http.routers.{{ role_name }}.middlewares: lan-whitelist@file
|
||||||
|
Reference in New Issue
Block a user