Cloned radarr role to other roles

This commit is contained in:
Mike Wilson
2023-02-01 21:15:30 -05:00
parent 2cec34cfc9
commit 1535c7bd49
15 changed files with 157 additions and 67 deletions

View File

@@ -1,2 +1,3 @@
media_storage_mnt: /mnt/storage media_storage_mnt: /mnt/storage
media_group: media
media_gid: 997 media_gid: 997

View 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

View 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

View 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

View File

@@ -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

View File

@@ -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 }}`)"

View 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 }}/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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View File

@@ -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

View 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

View File

@@ -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