@installdoc/ansible-gas-station
Version:
An Ansible playbook that provisions your network with software from GitHub Awesome lists, developed with disaster recovery in mind ⛽🔥🤤
295 lines (287 loc) • 12.3 kB
YAML
---
# This is the domain that will be used for all services (e.g. if you access sonarr.home/, you will
# be redirected to https://sonarr.home.megabyte.space)
base_domain: megabyte.space
# This is the subdomain used for services that are intended to be used byother people on your intranet
home_subdomain: home
# This is the subdomain used for services that are intended to be used by you (the tech guru)
lab_subdomain: lab
# FQDN of the apt-cacher-ng endpoint
apt_cacher_endpoint: 'apt.{{ lab_subdomain }}.{{ base_domain }}'
# FQDN of the Healthchecks endpoint (see: https://github.com/healthchecks/healthchecks)
healthcheck_endpoint: 'health.{{ base_domain }}'
# The theme to inject into the head of certain web apps (note: search for theme_url in this file and
# check out https://github.com/gilbN/theme.park)
theme_park_theme: aquamarine
hosts:
adminer:
hosts: 'adminer adminer.{{ lab_subdomain }} adminer.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# Adminer'
alertmanager:
hosts: 'alertmanager alertmanager.{{ lab_subdomain }} alertmanager.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# AlertManager'
apt:
authelia: false
hosts: 'apt aptcacher apt.{{ lab_subdomain }} apt.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ proxy_ip_address }}'
regexp: '# AptCacherNG'
authelia: # Hosted on controller because authelia can not reside on same machine as double proxy for some reason
authelia: false
default_server: true
hosts: 'auth authelia auth.{{ base_domain }}'
ip_address: '{{ controller_ip_address }}'
regexp: '# Authelia'
awx:
hosts: 'awx awx.{{ lab_subdomain }} awx.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# AWX'
bazarr:
hosts: 'bazarr bazarr.{{ home_subdomain }} bazarr.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Bazarr'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/bazarr/{{ theme_park_theme }}.css'
cockpit:
hosts: 'cockpit cockpit.{{ lab_subdomain }} cockpit.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
proxy_file: proxy-ws.conf
regexp: '# Cockpit'
transport: https
code:
hosts: 'code code.{{ lab_subdomain }} code.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
proxy_file: proxy-ws.conf
regexp: '# CodeServer'
consul:
hosts: 'consul consul.{{ lab_subdomain }} consul.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# Consul'
cups:
hosts: 'cups cups.{{ home_subdomain }} printers printers.{{ home_subdomain }} printers.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
proxy_file: proxy-cups.conf
regexp: '# CUPS'
transport: https
elastic:
authelia: false
hosts: 'elastic elastic.{{ lab_subdomain }} elastic.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# ElasticSearch'
transport: https
grafana:
hosts: 'grafana grafana.{{ lab_subdomain }} grafana.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# Grafana'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/grafana/{{ theme_park_theme }}.css'
healthchecks:
dns_record: health
dns_zone: '{{ base_domain }}'
hosts: 'healthchecks health.{{ lab_subdomain }} health.{{ base_domain }}'
ip_address: '{{ status_ip_address }}'
regexp: '# Healthchecks'
heimdall:
hosts: 'heimdall heimdall.{{ home_subdomain }} home.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Heimdall'
homer:
hosts: 'homer homer.{{ lab_subdomain }} {{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# HomerLab'
jackett:
hosts: 'jackett jackett.{{ home_subdomain }} jackett.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Jackett'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/jackett/{{ theme_park_theme }}.css'
kibana:
authelia: false
hosts: 'kibana kibana.{{ lab_subdomain }} kibana.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# Kibana'
transport: https
kodi:
hosts: 'kodi kodi.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Kodi'
malaptop:
cockpit: true
hostname: MALaptop
hosts: 'laptop laptop.{{ lab_subdomain }} laptop.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ laptop_ip_address }}'
regexp: '# Laptop'
librespeed:
hosts: 'speedtest speedtest.{{ lab_subdomain }} speedtest.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# LibreSpeed'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/html5speedtest/{{ theme_park_theme }}.css'
lidarr:
hosts: 'lidarr lidarr.{{ home_subdomain }} lidarr.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Lidarr'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/lidarr/{{ theme_park_theme }}.css'
maas:
firewall: true
hosts: 'maas maas.{{ lab_subdomain }} maas.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# MAAS'
musicbrainz:
hosts: 'musicbrainz musicbrainz.{{ home_subdomain }} musicbrainz.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# MusicBrainz'
netboot:
hosts: 'netboot netboot.{{ lab_subdomain }} netboot.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ netboot_ip_address }}'
regexp: '# NetbootXYZ'
netbootassets:
hosts: 'netbootassets netbootassets.{{ lab_subdomain }} netbootassets.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ netboot_ip_address }}'
regexp: '# Assets4XYZ'
nextcloud:
authelia: false
hosts: 'nextcloud cloud.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# NextCloud'
npm:
authelia: false
hosts: 'npm npm.{{ lab_subdomain }} npm.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# Verdaccio'
nuc:
cockpit: true
hostname: NUC
hosts: 'nuc nuc.{{ lab_subdomain }} nuc.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# NUC'
nzbget:
hosts: 'nzbget nzbget.{{ home_subdomain }} nzbget.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# NZBGet'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/nzbget/{{ theme_park_theme }}.css'
ombi:
hosts: 'ombi ombi.{{ home_subdomain }} ombi.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Ombi'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/ombi/{{ theme_park_theme }}.css'
organizr:
hosts: 'organizr organizr.{{ home_subdomain }} organizr.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Organizr'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/organizr/{{ theme_park_theme }}.css'
pfsense:
hosts: 'pfsense pfsense.{{ lab_subdomain }} pfsense.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: 10.0.0.1
regexp: '# pfSense'
pihole:
hostname: PiHole
hosts: 'pihole pi.hole dns.{{ home_subdomain }} pihole.{{ home_subdomain }}.{{ base_domain }}'
ip_address: 192.168.35.24
regexp: '# PiHole'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/pi-hole/{{ theme_park_theme }}.css'
transport: https
plex:
hosts: 'plex plex.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Plex'
transport: https
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/plex/{{ theme_park_theme }}.css'
portainer:
hosts: 'portainer portainer.{{ lab_subdomain }} portainer.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# Portainer'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/portainer/{{ theme_park_theme }}.css'
prometheus:
hosts: 'prometheus prometheus.{{ lab_subdomain }} prometheus.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# Prometheus'
radarr:
hosts: 'radarr radarr.{{ home_subdomain }} radarr.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Radarr'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/radarr/{{ theme_park_theme }}.css'
raspi:
cockpit: true
hostname: Raspi
hosts: 'raspi raspi.{{ lab_subdomain }} raspi.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ controller_ip_address }}'
regexp: '# RaspiHelper'
raspiboot:
cockpit: true
hostname: RaspiBoot
hosts: 'raspiboot raspiboot.{{ lab_subdomain }} raspiboot.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ netboot_ip_address }}'
regexp: '# RaspiBoot'
raspiproxy:
cockpit: true
hostname: RaspiProxy
hosts: 'raspiproxy raspiproxy.{{ lab_subdomain }} raspiproxy.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ proxy_ip_address }}'
regexp: '# RaspiProxy'
seconion:
hosts: 'seconion seconion.{{ lab_subdomain }} seconion.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: 10.14.44.14
regexp: '# Security Onion'
sonarr:
hosts: 'sonarr sonarr.{{ home_subdomain }} sonarr.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Sonarr'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/sonarr/{{ theme_park_theme }}.css'
stackedit:
hosts: 'stackedit stackedit.{{ lab_subdomain }} stackedit.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# StackEdit'
statping:
authelia: false
dns_record: status
dns_zone: '{{ base_domain }}'
hosts: 'statping status.{{ lab_subdomain }} status.{{ base_domain }}'
ip_address: '{{ status_ip_address }}'
regexp: '# StatPing'
statuscheck:
cockpit: true
dns_record: statuscheck
dns_zone: '{{ base_domain }}'
hostname: StatusCheck
hosts: 'statuscheck statuscheck.{{ lab_subdomain }} statuscheck.{{ base_domain }}'
ip_address: '{{ status_ip_address }}'
regexp: '# StatusCheck'
tautulli:
hosts: 'tautulli tautulli.{{ home_subdomain }} tautulli.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Tautulli'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/tautulli/{{ theme_park_theme }}.css'
thelounge:
hosts: 'chat lounge chat.{{ lab_subdomain }} lounge.{{ lab_subdomain }} chat.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# The Lounge'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/thelounge/{{ theme_park_theme }}.css'
transmission:
hosts: 'transmission transmission.{{ home_subdomain }} transmission.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Transmission'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/transmission/{{ theme_park_theme }}.css'
unifihome:
authelia: false
hosts: 'unifihome unifi.{{ home_subdomain }} unifi.{{ home_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# UniFi Home'
transport: https
unifilab:
authelia: false
hosts: 'unifilab unifi.{{ lab_subdomain }} unifi.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ controller_ip_address }}'
regexp: '# UniFi Lab'
transport: https
vault:
hosts: 'vault vault.{{ lab_subdomain }} vault.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ main_ip_address }}'
regexp: '# Vault'
workstation:
cockpit: true
hostname: Workstation
hosts: 'workstation workstation.{{ lab_subdomain }} workstation.{{ lab_subdomain }}.{{ base_domain }} work.{{ lab_subdomain }}.{{ base_domain }}'
ip_address: '{{ home_ip_address }}'
regexp: '# Workstation'
rc1918_networks:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16