Compare commits
2 Commits
0d22099cca
...
1145db811b
Author | SHA1 | Date | |
---|---|---|---|
1145db811b | |||
0245113532 |
@ -1,12 +1,14 @@
|
||||
---
|
||||
- name: cloud wg config
|
||||
hosts: vpn
|
||||
gather_facts: no
|
||||
tasks:
|
||||
- debug: msg="Deploying wg to cloud server"
|
||||
roles:
|
||||
- { name: wg_vpn, tags: ['wg_vpn'] }
|
||||
|
||||
- name: deploy the awful stack
|
||||
gather_facts: no
|
||||
hosts: prod
|
||||
tasks:
|
||||
- debug: msg="Deploying awful stack to cloud server"
|
||||
@ -16,5 +18,6 @@
|
||||
|
||||
- name: Deploy mediaserver
|
||||
hosts: mediaserver
|
||||
gather_facts: no
|
||||
roles:
|
||||
- { name: mediaserver, tags: ['mediaserver'] }
|
||||
|
@ -3,6 +3,7 @@ inventory = hosts.yml
|
||||
pipelining = True
|
||||
retry_files_enabled = False
|
||||
stdout_callback = yaml
|
||||
vault_password_file=open_the_vault.sh
|
||||
|
||||
[ssh_connection]
|
||||
scp_if_ssh = True
|
||||
|
@ -36,6 +36,9 @@
|
||||
- name: ensure traefik config directory exists
|
||||
file: state=directory path=/home/josiah/apps/traefik/ owner=josiah group=josiah mode=0700
|
||||
|
||||
- name: ensure mediaserver config directory exists
|
||||
file: state=directory path=/home/josiah/apps/mediaserver/ owner=josiah group=josiah mode=0700
|
||||
|
||||
- name: ensure traefik.log exists
|
||||
file: state=file path=/home/josiah/apps/traefik/traefik.log owner=josiah group=josiah mode=0700
|
||||
|
||||
@ -55,21 +58,13 @@
|
||||
dest: "{{ item.dest }}"
|
||||
mode: 0777
|
||||
with_items:
|
||||
- {src: 'traefik-compose.yml', dest: '/home/josiah/apps/traefik/traefik-compose.yml'}
|
||||
- {src: 'mediaserver-compose.yml', dest: '/home/josiah/apps/mediaserver/mediaserver-compose.yml'}
|
||||
- {src: 'traefik.toml', dest: '/home/josiah/apps/traefik/traefik.toml'}
|
||||
- {src: 'traefik.yml', dest: '/home/josiah/apps/traefik/traefik.yml'}
|
||||
|
||||
- name: Deploy network
|
||||
docker_stack:
|
||||
state: present
|
||||
name: traefik
|
||||
compose:
|
||||
- /home/josiah/apps/traefik/traefik.yml
|
||||
|
||||
|
||||
- name: Deploy traefik service
|
||||
- name: Deploy mediaserver stack
|
||||
docker_stack:
|
||||
state: present
|
||||
name: mediaserver
|
||||
compose:
|
||||
- /home/josiah/apps/traefik/traefik-compose.yml
|
||||
- /home/josiah/apps/mediaserver/mediaserver-compose.yml
|
||||
|
138
ansible/roles/mediaserver/templates/mediaserver-compose.yml
Normal file
138
ansible/roles/mediaserver/templates/mediaserver-compose.yml
Normal file
@ -0,0 +1,138 @@
|
||||
---
|
||||
version: '3.7'
|
||||
services:
|
||||
traefik:
|
||||
image: traefik
|
||||
networks:
|
||||
- pubnet
|
||||
command: --web --docker --docker.swarmmode --docker.watch --docker.domain="hatchery.home.jowj.net" --logLevel=DEBUG
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- traefik_acme:/acme/
|
||||
- traefik_logs:/var/log/access.log
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /home/josiah/apps/traefik/traefik.toml:/traefik.toml
|
||||
deploy:
|
||||
mode: global
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.mediaserver-traefik-api.rule=Host(`hatchery.home.jowj.net`)&&(PathPrefix(`/api`)||PathPrefix(`/dashboard`)||PathPrefix(`/debug`))"
|
||||
- "traefik.http.routers.mediaserver-traefik-api.service=api@internal"
|
||||
- "traefik.http.routers.mediaserver-traefik-api.entrypoints=http"
|
||||
|
||||
hydra2:
|
||||
image: linuxserver/hydra2:latest
|
||||
networks:
|
||||
- pubnet
|
||||
volumes:
|
||||
- /home/josiah/apps/hydra2/:/config
|
||||
- /home/josiah/Downloads/usenet-complete/:/downloads
|
||||
environment:
|
||||
PGID: 1000
|
||||
PUID: 1000
|
||||
TZ: American/Chicago
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.mediaserver-hydra2.loadbalancer.server.port=5076"
|
||||
- "traefik.http.routers.mediaserver-hydra2.service=mediaserver-hydra2"
|
||||
- "traefik.http.routers.mediaserver-hydra2.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/hydra2`)"
|
||||
|
||||
sabnzb:
|
||||
image: "linuxserver/sabnzbd"
|
||||
networks:
|
||||
- pubnet
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
TZ: America/Chicago
|
||||
volumes:
|
||||
- "/home/josiah/apps/sabnzbd:/config"
|
||||
- "/home/josiah/Downloads/usenet-complete/:/downloads"
|
||||
- "/home/josiah/Downloads/usenet-incomplete/:/incomplete-downloads"
|
||||
- "/home/josiah/Downloads/usenet-watched/:/watched-folder"
|
||||
- "/media/usenet/tv:/tv"
|
||||
- "/media/usenet/audio/:/music"
|
||||
- "/media/usenet/movies/:/movies"
|
||||
- "/media/usenet/itunes-synology/iTunes Media/Automatically Add to iTunes.localized/:/itunes"
|
||||
- "/media/usenet/book-library/books/:/books"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.mediaserver-sabnzbd.loadbalancer.server.port=8080"
|
||||
- "traefik.http.routers.mediaserver-sabnzbd.service=mediaserver-sabnzbd"
|
||||
- "traefik.http.routers.mediaserver-sabnzbd.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/sabnzbd`)"
|
||||
sonarr:
|
||||
image: "linuxserver/sonarr"
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
TZ: America/Chicago
|
||||
volumes:
|
||||
- "/home/josiah/apps/sonarr:/config"
|
||||
- "/home/josiah/Downloads/usenet-complete/:/downloads"
|
||||
- "/media/usenet/tv/:/tv"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.mediaserver-sonarr.loadbalancer.server.port=8989"
|
||||
- "traefik.http.routers.mediaserver-sonarr.service=mediaserver-sonarr"
|
||||
- "traefik.http.routers.mediaserver-sonarr.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/sonarr`)"
|
||||
networks:
|
||||
- pubnet
|
||||
|
||||
lidarr:
|
||||
image: "linuxserver/lidarr"
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
TZ: America/Chicago
|
||||
volumes:
|
||||
- "/home/josiah/apps/lidarr:/config"
|
||||
- "/home/josiah/Downloads/usenet-complete/:/downloads"
|
||||
- "/media/usenet/audio/:/music"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.mediaserver-lidarr.loadbalancer.server.port=8686"
|
||||
- "traefik.http.routers.mediaserver-lidarr.service=mediaserver-lidarr"
|
||||
- "traefik.http.routers.mediaserver-lidarr.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/lidarr`)"
|
||||
networks:
|
||||
- pubnet
|
||||
|
||||
radarr:
|
||||
image: "linuxserver/radarr"
|
||||
environment:
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
TZ: America/Chicago
|
||||
volumes:
|
||||
- "/home/josiah/apps/radarr:/config"
|
||||
- "/home/josiah/Downloads/usenet-complete/:/downloads"
|
||||
- "/media/usenet/movies/:/movies"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.mediaserver-radarr.loadbalancer.server.port=7878"
|
||||
- "traefik.http.routers.mediaserver-radarr.service=mediaserver-radarr"
|
||||
- "traefik.http.routers.mediaserver-radarr.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/radarr`)"
|
||||
networks:
|
||||
- pubnet
|
||||
|
||||
whoami:
|
||||
image: containous/whoami:latest
|
||||
networks:
|
||||
- pubnet
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.mediaserver-whoami.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/whoami`)"
|
||||
- "traefik.http.routers.mediaserver-whoami.service=mediaserver-whoami"
|
||||
- "traefik.http.services.mediaserver-whoami.loadbalancer.server.port=80"
|
||||
|
||||
volumes:
|
||||
traefik_acme:
|
||||
traefik_logs:
|
||||
|
||||
networks:
|
||||
pubnet:
|
||||
driver: overlay
|
@ -1,62 +0,0 @@
|
||||
---
|
||||
version: '3'
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:v2.0
|
||||
command: --web --docker --docker.swarmmode --docker.watch --docker.domain="hatchery.home.jowj.net" --logLevel=DEBUG
|
||||
container_name: traefik
|
||||
ports:
|
||||
- 8080:8080
|
||||
- 80:80
|
||||
- 443:443
|
||||
volumes:
|
||||
- traefik_acme:/acme/
|
||||
- traefik_logs:/var/log/access.log
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /home/josiah/apps/traefik/traefik.toml:/etc/traefik/traefik.toml
|
||||
networks:
|
||||
- pubnet
|
||||
- privnet
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.mediaserver-traefik-api.rule=Host(`hatchery.home.jowj.net`)&&(PathPrefix(`/api`)||PathPrefix(`/dashboard`)||PathPrefix(`/debug`))"
|
||||
- "traefik.http.routers.mediaserver-traefik-api.service=api@internal"
|
||||
- "traefik.http.routers.mediaserver-traefik-api.entrypoints=http"
|
||||
|
||||
hydra2:
|
||||
image: linuxserver/hydra2:latest
|
||||
container_name: hydra2
|
||||
hostname: hydra2
|
||||
volumes:
|
||||
- /home/josiah/apps/hydra2/:/config
|
||||
- /home/josiah/Downloads/usenet-complete/:/downloads
|
||||
environment:
|
||||
PGID: 1000
|
||||
PUID: 1000
|
||||
TZ: American/Chicago
|
||||
deploy:
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.hydra2.service=hydra2"
|
||||
- "traefik.http.routers.hydra2.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/hydra2`))"
|
||||
- "traefik.http.routers.hydra2.entrypoints=http"
|
||||
- "traefik.http.services.hydra2.loadbalancer.server.port=5076"
|
||||
networks:
|
||||
- privnet
|
||||
|
||||
volumes:
|
||||
traefik_acme:
|
||||
traefik_logs:
|
||||
|
||||
networks:
|
||||
pubnet:
|
||||
external: true
|
||||
networks:
|
||||
pubnet:
|
||||
driver: overlay
|
||||
privnet:
|
||||
driver: overlay
|
@ -1,29 +0,0 @@
|
||||
version: "3.2"
|
||||
|
||||
# What is this?
|
||||
#
|
||||
# This stack exists solely to deploy the traefik_public overlay network, so that
|
||||
# other stacks (including traefik-app) can attach to it
|
||||
|
||||
services:
|
||||
scratch:
|
||||
image: scratch
|
||||
deploy:
|
||||
replicas: 0
|
||||
networks:
|
||||
- pubnet
|
||||
|
||||
networks:
|
||||
pubnet:
|
||||
driver: overlay
|
||||
attachable: true
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.16.200.0/24
|
||||
privnet:
|
||||
driver: overlay
|
||||
attachable: true
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.16.219.0/24
|
||||
|
Loading…
Reference in New Issue
Block a user