Merge branch 'new_format' of https://github.com/anarion80/ansible-nas into anarion80-new_format_2

This commit is contained in:
David Stephens 2023-04-12 23:21:21 +01:00
commit 6b697c7756
444 changed files with 7494 additions and 2342 deletions

66
nas.yml
View file

@ -123,12 +123,10 @@
- role: freshrss - role: freshrss
tags: tags:
- freshrss - freshrss
when: (freshrss_enabled | default(False))
- role: get_iplayer - role: get_iplayer
tags: tags:
- get_iplayer - get_iplayer
when: (get_iplayer_enabled | default(False))
- role: gitea - role: gitea
tags: tags:
@ -137,32 +135,26 @@
- role: gitlab - role: gitlab
tags: tags:
- gitlab - gitlab
when: (gitlab_enabled | default(False))
- role: glances - role: glances
tags: tags:
- glances - glances
when: (glances_enabled | default(False))
- role: gotify - role: gotify
tags: tags:
- gotify - gotify
when: (gotify_enabled | default(False))
- role: guacamole - role: guacamole
tags: tags:
- guacamole - guacamole
when: (guacamole_enabled | default(False))
- role: healthchecks.io - role: healthchecks.io
tags: tags:
- healthchecks.io - healthchecks.io
when: (healthchecks_enabled | default(False))
- role: heimdall - role: heimdall
tags: tags:
- heimdall - heimdall
when: (heimdall_enabled | default(False))
- role: hello_world - role: hello_world
tags: tags:
@ -171,67 +163,54 @@
- role: homeassistant - role: homeassistant
tags: tags:
- homeassistant - homeassistant
when: (homeassistant_enabled | default(False))
- role: homebridge - role: homebridge
tags: tags:
- homebridge - homebridge
when: (homebridge_enabled | default(False))
- role: jackett - role: jackett
tags: tags:
- jackett - jackett
when: (jackett_enabled | default(False))
- role: jellyfin - role: jellyfin
tags: tags:
- jellyfin - jellyfin
when: (jellyfin_enabled | default(False))
- role: joomla - role: joomla
tags: tags:
- joomla - joomla
when: (joomla_enabled | default(False))
- role: komga - role: komga
tags: tags:
- komga - komga
when: (komga_enabled | default(False))
- role: krusader - role: krusader
tags: tags:
- krusader - krusader
when: (krusader_enabled | default(False))
- role: lidarr - role: lidarr
tags: tags:
- lidarr - lidarr
when: (lidarr_enabled | default(False))
- role: mealie - role: mealie
tags: tags:
- mealie - mealie
when: (mealie_enabled | default(False))
- role: minecraft-server - role: minecraft-server
tags: tags:
- minecraft-server - minecraft-server
when: (minecraft_server_enabled | default(False))
- role: minidlna - role: minidlna
tags: tags:
- minidlna - minidlna
when: (minidlna_enabled | default(False))
- role: miniflux - role: miniflux
tags: tags:
- miniflux - miniflux
when: (miniflux_enabled | default(False))
- role: mosquitto - role: mosquitto
tags: tags:
- mosquitto - mosquitto
when: (mosquitto_enabled | default(False))
- role: mumble - role: mumble
tags: tags:
@ -240,37 +219,30 @@
- role: mylar - role: mylar
tags: tags:
- mylar - mylar
when: (mylar_enabled | default(False))
- role: mymediaforalexa - role: mymediaforalexa
tags: tags:
- mymediaforalexa - mymediaforalexa
when: (mymediaforalexa_enabled | default(False))
- role: n8n - role: n8n
tags: tags:
- n8n - n8n
when: (n8n_enabled | default(False))
- role: navidrome - role: navidrome
tags: tags:
- navidrome - navidrome
when: (navidrome_enabled | default(False))
- role: netbootxyz - role: netbootxyz
tags: tags:
- netbootxyz - netbootxyz
when: (netbootxyz_enabled | default(False))
- role: netdata - role: netdata
tags: tags:
- netdata - netdata
when: (netdata_enabled | default(False))
- role: nextcloud - role: nextcloud
tags: tags:
- nextcloud - nextcloud
when: (nextcloud_enabled | default(False))
- role: nomad - role: nomad
tags: tags:
@ -279,189 +251,151 @@
- role: nzbget - role: nzbget
tags: tags:
- nzbget - nzbget
when: (nzbget_enabled | default(False))
- role: octoprint - role: octoprint
tags: tags:
- octoprint - octoprint
when: (octoprint_enabled | default(False))
- role: ombi - role: ombi
tags: tags:
- ombi - ombi
when: (ombi_enabled | default(False))
- role: openhab - role: openhab
tags: tags:
- openhab - openhab
when: (openhab_enabled | default(False))
- role: organizr - role: organizr
tags: tags:
- organizr - organizr
when: (organizr_enabled | default(False))
- role: overseerr - role: overseerr
tags: tags:
- overseerr - overseerr
when: (overseerr_enabled | default(False))
- role: paperless_ng - role: paperless_ng
tags: tags:
- paperless_ng - paperless_ng
when: (paperless_ng_enabled | default(False))
- role: piwigo - role: piwigo
tags: tags:
- piwigo - piwigo
when: (piwigo_enabled | default(False))
- role: plex - role: plex
tags: tags:
- plex - plex
when: (plex_enabled | default(False))
- role: portainer - role: portainer
tags: tags:
- portainer - portainer
when: (portainer_enabled | default(False))
- role: prowlarr - role: prowlarr
tags: tags:
- prowlarr - prowlarr
when: (prowlarr_enabled | default(False))
- role: pyload - role: pyload
tags: tags:
- pyload - pyload
when: (pyload_enabled | default(False))
- role: pytivo - role: pytivo
tags: tags:
- pytivo - pytivo
when: (pytivo_enabled | default(False))
- role: radarr - role: radarr
tags: tags:
- radarr - radarr
when: (radarr_enabled | default(False))
- role: route53_ddns - role: route53_ddns
tags: tags:
- route53_ddns - route53_ddns
when: (route53_ddns_enabled | default(False))
- role: rssbridge - role: rssbridge
tags: tags:
- rssbridge - rssbridge
when: (rssbridge_enabled | default(False))
- role: sabnzbd - role: sabnzbd
tags: tags:
- sabnzbd - sabnzbd
when: (sabnzbd_enabled | default(False))
- role: sickchill - role: sickchill
tags: tags:
- sickchill - sickchill
when: (sickchill_enabled | default(False))
- role: sonarr - role: sonarr
tags: tags:
- sonarr - sonarr
when: (sonarr_enabled | default(False))
- role: speedtest-tracker - role: speedtest-tracker
tags: tags:
- speedtest-tracker - speedtest-tracker
when: (speedtest_tracker_enabled | default(False))
- role: stats - role: stats
tags: tags:
- stats - stats
when: (stats_enabled | default(False))
- role: syncthing - role: syncthing
tags: tags:
- syncthing - syncthing
when: (syncthing_enabled | default(False))
- role: tautulli - role: tautulli
tags: tags:
- tautulli - tautulli
when: (tautulli_enabled | default(False))
- role: thelounge - role: thelounge
tags: tags:
- thelounge - thelounge
when: (thelounge_enabled | default(False))
- role: tiddlywiki - role: tiddlywiki
tags: tags:
- tiddlywiki - tiddlywiki
when: (tiddlywiki_enabled | default(False))
- role: timemachine - role: timemachine
tags: tags:
- timemachine - timemachine
when: (timemachine_enabled | default(False))
- role: traefik - role: traefik
tags: tags:
- traefik - traefik
when: (traefik_enabled | default(False))
- role: transmission - role: transmission
tags: tags:
- transmission - transmission
when: (transmission_enabled | default(False))
- role: transmission-with-openvpn - role: transmission-with-openvpn
tags: tags:
- transmission_with_openvpn - transmission_with_openvpn
when: (transmission_with_openvpn_enabled | default(False))
- role: ubooquity - role: ubooquity
tags: tags:
- ubooquity - ubooquity
when: (ubooquity_enabled | default(False))
- role: utorrent - role: utorrent
tags: tags:
- utorrent - utorrent
when: (utorrent_enabled | default(False))
- role: virtual_desktop - role: virtual_desktop
tags: tags:
- virtual_desktop - virtual_desktop
when: (virtual_desktop_enabled | default(False))
- role: wallabag - role: wallabag
tags: tags:
- wallabag - wallabag
when: (wallabag_enabled | default(False))
- role: watchtower - role: watchtower
tags: tags:
- watchtower - watchtower
when: (watchtower_enabled | default(False))
- role: wireshark - role: wireshark
tags: tags:
- wireshark - wireshark
when: (wireshark_enabled | default(False))
- role: woodpecker-ci - role: woodpecker-ci
tags: tags:
- woodpecker_ci - woodpecker_ci
when: (woodpecker_ci_enabled | default(False))
- role: youtubedlmaterial - role: youtubedlmaterial
tags: tags:
- youtubedlmaterial - youtubedlmaterial
when: (youtubedlmaterial_enabled | default(False))
- role: znc - role: znc
tags: tags:
- znc - znc
when: (znc_enabled | default(False))

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Airsonic - name: Try and stop and remove Airsonic

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Bazarr - name: Try and stop and remove Bazarr

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Bitwarden - name: Try and stop and remove Bitwarden

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Booksonic - name: Try and stop and remove Booksonic

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Calibre - name: Try and stop and remove Calibre

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Cloudcmd - name: Try and stop and remove Cloudcmd

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Cloudflare DDNS - name: Try and stop and remove Cloudflare DDNS

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Code Server - name: Try and stop and remove Code Server

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Couchpotato - name: Try and stop and remove Couchpotato

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Dashy - name: Try and stop and remove Dashy

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Deluge - name: Try and stop and remove Deluge

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Dokuwiki - name: Try and stop and remove Dokuwiki

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Drone CI - name: Try and stop and remove Drone CI

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Duplicacy - name: Try and stop and remove Duplicacy

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove EspHome - name: Try and stop and remove EspHome

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -3,7 +3,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Firefly - name: Try and stop and remove Firefly

View file

@ -10,5 +10,10 @@ freshrss_extensions_directory: "{{ docker_home }}/freshrss"
freshrss_port: "8089" freshrss_port: "8089"
freshrss_hostname: "freshrss" freshrss_hostname: "freshrss"
# docker
freshrss_container_name: freshrss
freshrss_image_name: "freshrss/freshrss"
freshrss_image_version: latest
# specs # specs
freshrss_memory: 1g freshrss_memory: 1g

View file

@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
freshrss_enabled: true

View file

@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
freshrss_enabled: false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Get freshrss container state
community.docker.docker_container:
name: "{{ freshrss_container_name }}"
register: result
- name: Check if freshrss containers are running
ansible.builtin.assert:
that:
- result.container['State']['Status'] == "running"
- result.container['State']['Restarting'] == false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Try and stop and remove freshrss
community.docker.docker_container:
name: "{{ freshrss_container_name }}"
state: absent
register: result
- name: Check if freshrss is stopped
ansible.builtin.assert:
that:
- not result.changed

View file

@ -1,17 +1,19 @@
--- ---
- name: Start FreshRSS
block:
- name: Create FreshRSS Directories - name: Create FreshRSS Directories
file: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"
state: directory state: directory
# mode: 0755
with_items: with_items:
- "{{ freshrss_data_directory }}/data" - "{{ freshrss_data_directory }}/data"
- "{{ freshrss_extensions_directory }}/extensions" - "{{ freshrss_extensions_directory }}/extensions"
- name: FreshRSS Docker Container - name: FreshRSS Docker Container
docker_container: community.docker.docker_container:
name: freshrss container_default_behavior: no_defaults
image: freshrss/freshrss name: "{{ freshrss_container_name }}"
image: "{{ freshrss_image_name }}:{{ freshrss_image_version }}"
pull: true pull: true
volumes: volumes:
- "{{ freshrss_data_directory }}/data:/var/www/FreshRSS/data:rw" - "{{ freshrss_data_directory }}/data:/var/www/FreshRSS/data:rw"
@ -30,3 +32,13 @@
traefik.http.routers.freshrss.tls.domains[0].main: "{{ ansible_nas_domain }}" traefik.http.routers.freshrss.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.freshrss.tls.domains[0].sans: "*.{{ ansible_nas_domain }}" traefik.http.routers.freshrss.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
traefik.http.services.freshrss.loadbalancer.server.port: "80" traefik.http.services.freshrss.loadbalancer.server.port: "80"
when: freshrss_enabled is true
- name: Stop FreshRSS
block:
- name: Stop FreshRSS
community.docker.docker_container:
name: "{{ freshrss_container_name }}"
state: absent
when: freshrss_enabled is false

View file

@ -8,5 +8,10 @@ get_iplayer_download_directory: "{{ tv_root }}/iplayer_downloads"
# network # network
get_iplayer_port: "8182" get_iplayer_port: "8182"
# docker
get_iplayer_container_name: "get_iplayer"
get_iplayer_image_name: "kolonuk/get_iplayer"
get_iplayer_image_version: "latest"
# specs # specs
get_iplayer_memory: "1g" get_iplayer_memory: "1g"

View file

@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
get_iplayer_enabled: true

View file

@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
get_iplayer_enabled: false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Get get_iplayer container state
community.docker.docker_container:
name: "{{ get_iplayer_container_name }}"
register: result
- name: Check if get_iplayer containers are running
ansible.builtin.assert:
that:
- result.container['State']['Status'] == "running"
- result.container['State']['Restarting'] == false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Try and stop and remove get_iplayer
community.docker.docker_container:
name: "{{ get_iplayer_container_name }}"
state: absent
register: result
- name: Check if get_iplayer is stopped
ansible.builtin.assert:
that:
- not result.changed

View file

@ -1,16 +1,19 @@
--- ---
- name: Start get_iplayer
block:
- name: Create get_iplayer Directories - name: Create get_iplayer Directories
file: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"
state: directory state: directory
with_items: with_items:
- "{{ get_iplayer_config_directory }}" - "{{ get_iplayer_config_directory }}"
- "{{ get_iplayer_download_directory }}" - "{{ get_iplayer_download_directory }}"
- name: Get_iplayer Docker Container - name: Create get_iplayer Docker Container
docker_container: community.docker.docker_container:
name: get_iplayer container_default_behavior: no_defaults
image: kolonuk/get_iplayer name: "{{ get_iplayer_container_name }}"
image: "{{ get_iplayer_image_name }}:{{ get_iplayer_image_version }}"
pull: true pull: true
volumes: volumes:
- "{{ get_iplayer_config_directory }}:/root/.get_iplayer:rw" - "{{ get_iplayer_config_directory }}:/root/.get_iplayer:rw"
@ -19,3 +22,12 @@
- "{{ get_iplayer_port }}:8181" - "{{ get_iplayer_port }}:8181"
restart_policy: unless-stopped restart_policy: unless-stopped
memory: "{{ get_iplayer_memory }}" memory: "{{ get_iplayer_memory }}"
when: get_iplayer_enabled is true
- name: Stop get_iplayer
block:
- name: Stop get_iplayer
community.docker.docker_container:
name: "{{ get_iplayer_container_name }}"
state: absent
when: get_iplayer_enabled is false

View file

@ -7,6 +7,7 @@ gitea_data_directory: "{{ docker_home }}/gitea"
# network # network
gitea_hostname: "gitea" gitea_hostname: "gitea"
gitea_network_name: "gitea"
gitea_port_http: "3001" gitea_port_http: "3001"
gitea_port_ssh: "222" gitea_port_ssh: "222"
@ -16,4 +17,8 @@ gitea_mysql_memory: 1g
# docker # docker
gitea_container_name: gitea gitea_container_name: gitea
gitea_image_name: gitea/gitea
gitea_image_version: latest
gitea_mysql_container_name: gitea-mysql gitea_mysql_container_name: gitea-mysql
gitea_mysql_image_name: mysql
gitea_mysql_image_version: "5.7"

View file

@ -0,0 +1,7 @@
---
provisioner:
inventory:
group_vars:
all:
gitea_enabled: true
ansible_nas_hostname: ansible-nas

View file

@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
gitea_enabled: false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Get gitea container state
community.docker.docker_container:
name: "{{ gitea_container_name }}"
register: result
- name: Check if gitea containers are running
ansible.builtin.assert:
that:
- result.container['State']['Status'] == "running"
- result.container['State']['Restarting'] == false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Try and stop and remove gitea
community.docker.docker_container:
name: "{{ gitea_container_name }}"
state: absent
register: result
- name: Check if gitea is stopped
ansible.builtin.assert:
that:
- not result.changed

View file

@ -10,11 +10,19 @@
- "{{ gitea_data_directory }}/gitea" - "{{ gitea_data_directory }}/gitea"
- "{{ gitea_data_directory }}/mysql" - "{{ gitea_data_directory }}/mysql"
- name: Create gitea network
community.docker.docker_network:
name: "{{ gitea_network_name }}"
- name: Create MySQL container for Gitea - name: Create MySQL container for Gitea
docker_container: community.docker.docker_container:
container_default_behavior: no_defaults
name: "{{ gitea_mysql_container_name }}" name: "{{ gitea_mysql_container_name }}"
image: mysql:5.7 image: "{{ gitea_mysql_image_name }}:{{ gitea_mysql_image_version }}"
pull: true pull: true
networks:
- name: "{{ gitea_network_name }}"
network_mode: "{{ gitea_network_name }}"
volumes: volumes:
- "{{ gitea_data_directory }}/mysql:/var/lib/mysql:rw" - "{{ gitea_data_directory }}/mysql:/var/lib/mysql:rw"
env: env:
@ -26,12 +34,14 @@
memory: "{{ gitea_mysql_memory }}" memory: "{{ gitea_mysql_memory }}"
- name: Create Gitea container - name: Create Gitea container
docker_container: community.docker.docker_container:
name: gitea container_default_behavior: no_defaults
image: gitea/gitea:latest name: "{{ gitea_container_name }}"
image: "{{ gitea_image_name }}:{{ gitea_image_version }}"
pull: true pull: true
links: networks:
- gitea-mysql:db - name: "{{ gitea_network_name }}"
network_mode: "{{ gitea_network_name }}"
volumes: volumes:
- "{{ gitea_data_directory }}/gitea:/data:rw" - "{{ gitea_data_directory }}/gitea:/data:rw"
ports: ports:
@ -39,7 +49,7 @@
- "{{ gitea_port_ssh }}:22" - "{{ gitea_port_ssh }}:22"
env: env:
DB_TYPE: "mysql" DB_TYPE: "mysql"
DB_HOST: "db:3306" DB_HOST: "{{ gitea_mysql_container_name }}:3306"
DB_NAME: "gitea" DB_NAME: "gitea"
DB_USER: "gitea" DB_USER: "gitea"
DB_PASSWD: "gitea" DB_PASSWD: "gitea"

View file

@ -12,5 +12,12 @@ gitlab_port_http: "4080"
gitlab_port_https: "4443" gitlab_port_https: "4443"
gitlab_port_ssh: "422" gitlab_port_ssh: "422"
# docker
gitlab_container_name: "gitlab"
gitlab_image_name: "gitlab/gitlab-ce"
gitlab_image_version: "latest"
gitlab_user_id: "1000"
gitlab_group_id: "1000"
# specs # specs
gitlab_memory: "4g" gitlab_memory: "4g"

View file

@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
gitlab_enabled: true

View file

@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
gitlab_enabled: false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Get gitlab container state
community.docker.docker_container:
name: "{{ gitlab_container_name }}"
register: result
- name: Check if gitlab containers are running
ansible.builtin.assert:
that:
- result.container['State']['Status'] == "running"
- result.container['State']['Restarting'] == false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Try and stop and remove gitlab
community.docker.docker_container:
name: "{{ gitlab_container_name }}"
state: absent
register: result
- name: Check if gitlab is stopped
ansible.builtin.assert:
that:
- not result.changed

View file

@ -1,4 +1,6 @@
--- ---
- name: Start Gitlab
block:
# The gitlab uid/gid matches 'git:git' in the Gitlab Docker image. # The gitlab uid/gid matches 'git:git' in the Gitlab Docker image.
- name: Create Gitlab group account - name: Create Gitlab group account
group: group:
@ -28,9 +30,10 @@
- "{{ gitlab_data_directory }}/data" - "{{ gitlab_data_directory }}/data"
- name: Create Gitlab Docker Container - name: Create Gitlab Docker Container
docker_container: community.docker.docker_container:
name: gitlab container_default_behavior: no_defaults
image: gitlab/gitlab-ce:latest name: "{{ gitlab_container_name }}"
image: "{{ gitlab_image_name }}:{{ gitlab_image_version }}"
pull: true pull: true
volumes: volumes:
- "{{ gitlab_data_directory }}/config:/etc/gitlab:rw" - "{{ gitlab_data_directory }}/config:/etc/gitlab:rw"
@ -55,3 +58,12 @@
traefik.http.routers.gitlab.tls.domains[0].main: "{{ ansible_nas_domain }}" traefik.http.routers.gitlab.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.gitlab.tls.domains[0].sans: "*.{{ ansible_nas_domain }}" traefik.http.routers.gitlab.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
traefik.http.services.gitlab.loadbalancer.server.port: "80" traefik.http.services.gitlab.loadbalancer.server.port: "80"
when: gitlab_enabled is true
- name: Stop Gitlab
block:
- name: Stop Gitlab
community.docker.docker_container:
name: "{{ gitlab_container_name }}"
state: absent
when: gitlab_enabled is false

View file

@ -12,5 +12,10 @@ glances_port_two: "61209"
glances_security_options: glances_security_options:
- "apparmor=unconfined" - "apparmor=unconfined"
# docker
glances_container_name: "glances"
glances_image_name: "nicolargo/glances"
glances_image_version: "latest"
# specs # specs
glances_memory: 1g glances_memory: 1g

View file

@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
glances_enabled: true

View file

@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
glances_enabled: false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Get glances container state
community.docker.docker_container:
name: "{{ glances_container_name }}"
register: result
- name: Check if glances containers are running
ansible.builtin.assert:
that:
- result.container['State']['Status'] == "running"
- result.container['State']['Restarting'] == false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Try and stop and remove glances
community.docker.docker_container:
name: "{{ glances_container_name }}"
state: absent
register: result
- name: Check if glances is stopped
ansible.builtin.assert:
that:
- not result.changed

View file

@ -1,8 +1,11 @@
--- ---
- name: Start Glances
block:
- name: Create Glances Docker Container - name: Create Glances Docker Container
docker_container: community.docker.docker_container:
name: glances container_default_behavior: no_defaults
image: nicolargo/glances name: "{{ glances_container_name }}"
image: "{{ glances_image_name }}:{{ glances_image_version }}"
pull: true pull: true
volumes: volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro" - "/var/run/docker.sock:/var/run/docker.sock:ro"
@ -23,3 +26,12 @@
traefik.http.routers.glances.tls.domains[0].main: "{{ ansible_nas_domain }}" traefik.http.routers.glances.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.glances.tls.domains[0].sans: "*.{{ ansible_nas_domain }}" traefik.http.routers.glances.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
traefik.http.services.glances.loadbalancer.server.port: "61208" traefik.http.services.glances.loadbalancer.server.port: "61208"
when: glances_enabled is true
- name: Stop Glances
block:
- name: Stop Glances
community.docker.docker_container:
name: "{{ glances_container_name }}"
state: absent
when: glances_enabled is false

View file

@ -5,14 +5,14 @@ gotify_available_externally: false
# data directory # data directory
gotify_data_directory: "{{ docker_home }}/gotify" gotify_data_directory: "{{ docker_home }}/gotify"
# docker image to use
gotify_docker_image: gotify/server:latest
# network # network
gotify_port: "2346" gotify_port: "2346"
gotify_hostname: "gotify" gotify_hostname: "gotify"
# user to run container with # docker
gotify_container_name: "gotify"
gotify_image_name: "gotify/server"
gotify_image_version: "latest"
gotify_user_id: "0" gotify_user_id: "0"
gotify_group_id: "0" gotify_group_id: "0"

View file

@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
gotify_enabled: true

View file

@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
gotify_enabled: false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Get gotify container state
community.docker.docker_container:
name: "{{ gotify_container_name }}"
register: result
- name: Check if gotify containers are running
ansible.builtin.assert:
that:
- result.container['State']['Status'] == "running"
- result.container['State']['Restarting'] == false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Try and stop and remove gotify
community.docker.docker_container:
name: "{{ gotify_container_name }}"
state: absent
register: result
- name: Check if gotify is stopped
ansible.builtin.assert:
that:
- not result.changed

View file

@ -1,15 +1,18 @@
--- ---
- name: Start Gotify
block:
- name: Create Gotify Data Directory - name: Create Gotify Data Directory
file: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"
state: directory state: directory
with_items: with_items:
- "{{ gotify_data_directory }}" - "{{ gotify_data_directory }}"
- name: Gotify Docker Container - name: Gotify Docker Container
docker_container: community.docker.docker_container:
name: gotify container_default_behavior: no_defaults
image: "{{ gotify_docker_image }}" name: "{{ gotify_container_name }}"
image: "{{ gotify_image_name }}:{{ gotify_image_version }}"
pull: true pull: true
ports: ports:
- "{{ gotify_port }}:80" - "{{ gotify_port }}:80"
@ -29,3 +32,12 @@
traefik.http.routers.gotify.tls.domains[0].main: "{{ ansible_nas_domain }}" traefik.http.routers.gotify.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.gotify.tls.domains[0].sans: "*.{{ ansible_nas_domain }}" traefik.http.routers.gotify.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
traefik.http.services.gotify.loadbalancer.server.port: "80" traefik.http.services.gotify.loadbalancer.server.port: "80"
when: gotify_enabled is true
- name: Stop Gotify
block:
- name: Stop Gotify
community.docker.docker_container:
name: "{{ gotify_container_name }}"
state: absent
when: gotify_enabled is false

View file

@ -9,5 +9,10 @@ guacamole_data_directory: "{{ docker_home }}/guacamole"
guacamole_port: "8090" guacamole_port: "8090"
guacamole_hostname: "guacamole" guacamole_hostname: "guacamole"
# docker
guacamole_container_name: "guacamole"
guacamole_image_name: "oznu/guacamole"
guacamole_image_version: "latest"
# specs # specs
guacamole_memory: 1g guacamole_memory: 1g

View file

@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
guacamole_enabled: true

View file

@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
guacamole_enabled: false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Get guacamole container state
community.docker.docker_container:
name: "{{ guacamole_container_name }}"
register: result
- name: Check if guacamole containers are running
ansible.builtin.assert:
that:
- result.container['State']['Status'] == "running"
- result.container['State']['Restarting'] == false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Try and stop and remove guacamole
community.docker.docker_container:
name: "{{ guacamole_container_name }}"
state: absent
register: result
- name: Check if guacamole is stopped
ansible.builtin.assert:
that:
- not result.changed

View file

@ -1,6 +1,8 @@
--- ---
- name: Start Guacamole
block:
- name: Create Guacamole directories - name: Create Guacamole directories
file: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"
state: directory state: directory
with_items: with_items:
@ -26,9 +28,10 @@
- "{{ guacamole_data_directory }}/mysql" - "{{ guacamole_data_directory }}/mysql"
- name: Guacamole Container - name: Guacamole Container
docker_container: community.docker.docker_container:
name: guacamole container_default_behavior: no_defaults
image: "oznu/guacamole" name: "{{ guacamole_container_name }}"
image: "{{ guacamole_image_name }}:{{ guacamole_image_version }}"
pull: true pull: true
volumes: volumes:
- "{{ guacamole_data_directory }}/config:/config:rw" - "{{ guacamole_data_directory }}/config:/config:rw"
@ -45,7 +48,17 @@
traefik.http.services.guacamole.loadbalancer.server.port: "8080" traefik.http.services.guacamole.loadbalancer.server.port: "8080"
- name: Restart Guacamole Container - name: Restart Guacamole Container
docker_container: community.docker.docker_container:
name: guacamole name: "{{ guacamole_container_name }}"
image: "oznu/guacamole" image: "{{ guacamole_image_name }}:{{ guacamole_image_version }}"
restart: true restart: true
tags: molecule-idempotence-notest
when: guacamole_enabled is true
- name: Stop Guacamole
block:
- name: Stop Guacamole
community.docker.docker_container:
name: "{{ guacamole_container_name }}"
state: absent
when: guacamole_enabled is false

View file

@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
healthchecks_enabled: true

View file

@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
healthchecks_enabled: false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Check cron job file
ansible.builtin.fetch:
src: /var/spool/cron/crontabs/root
dest: /tmp/fetched
- name: Check if cron job does exist
ansible.builtin.assert:
that: "lookup('file', '/tmp/fetched/instance/var/spool/cron/crontabs/root') is search('healthchecks.io')"
fail_msg: "Cron job 'healthchecks.io' does not exist!"
success_msg: "Cron job 'healthchecks.io' does exist!"

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Check cron job file
ansible.builtin.fetch:
src: /var/spool/cron/crontabs/root
dest: /tmp/fetched
- name: Check if cron job does not exist
ansible.builtin.assert:
that: "not lookup('file', '/tmp/fetched/instance/var/spool/cron/crontabs/root') is search('healthchecks.io')"
fail_msg: "Cron job 'healthchecks.io' still exists!"
success_msg: "Cron job 'healthchecks.io' does not exist!"

View file

@ -1,7 +1,19 @@
--- ---
- name: Start Healthchecks
block:
- name: Add healthchecks.io cronjob - name: Add healthchecks.io cronjob
cron: ansible.builtin.cron:
name: healthchecks.io name: healthchecks.io
minute: "*/{{ healthchecks_ping_minutes }}" minute: "*/{{ healthchecks_ping_minutes }}"
user: root user: root
job: "curl -m 10 --retry 5 {{ healthchecks_url }}" job: "curl -m 10 --retry 5 {{ healthchecks_url }}"
when: healthchecks_enabled is true
- name: Stop Healthchecks
block:
- name: Remove healthchecks.io cronjob
ansible.builtin.cron:
name: healthchecks.io
user: root
state: absent
when: healthchecks_enabled is false

View file

@ -5,7 +5,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -5,7 +5,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Heimdall - name: Try and stop and remove Heimdall

View file

@ -5,7 +5,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Get container state - name: Get container state

View file

@ -5,7 +5,8 @@
hosts: all hosts: all
gather_facts: false gather_facts: false
tasks: tasks:
- include_vars: - name: Include vars
include_vars:
file: ../../defaults/main.yml file: ../../defaults/main.yml
- name: Try and stop and remove Hello World - name: Try and stop and remove Hello World

View file

@ -9,5 +9,10 @@ homeassistant_data_directory: "{{ docker_home }}/homeassistant"
homeassistant_port: "8123" homeassistant_port: "8123"
homeassistant_hostname: "homeassistant" homeassistant_hostname: "homeassistant"
# docker
homeassistant_container_name: "homeassistant"
homeassistant_image_name: "homeassistant/home-assistant"
homeassistant_image_version: latest
# specs # specs
homeassistant_memory: 1g homeassistant_memory: 1g

View file

@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
homeassistant_enabled: true

View file

@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
homeassistant_enabled: false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Get homeassistant container state
community.docker.docker_container:
name: "{{ homeassistant_container_name }}"
register: result
- name: Check if homeassistant containers are running
ansible.builtin.assert:
that:
- result.container['State']['Status'] == "running"
- result.container['State']['Restarting'] == false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Try and stop and remove homeassistant
community.docker.docker_container:
name: "{{ homeassistant_container_name }}"
state: absent
register: result
- name: Check if homeassistant is stopped
ansible.builtin.assert:
that:
- not result.changed

View file

@ -1,15 +1,18 @@
--- ---
- name: Start Homeassistant
block:
- name: Create Home Assistant Directories - name: Create Home Assistant Directories
file: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"
state: directory state: directory
with_items: with_items:
- "{{ homeassistant_data_directory }}/config" - "{{ homeassistant_data_directory }}/config"
- name: Home Assistant Docker Container - name: Home Assistant Docker Container
docker_container: community.docker.docker_container:
name: homeassistant container_default_behavior: no_defaults
image: homeassistant/home-assistant name: "{{ homeassistant_container_name }}"
image: "{{ homeassistant_image_name }}:{{ homeassistant_image_version }}"
pull: true pull: true
volumes: volumes:
- "{{ homeassistant_data_directory }}/config:/config:rw" - "{{ homeassistant_data_directory }}/config:/config:rw"
@ -25,3 +28,12 @@
traefik.http.routers.homeassistant.tls.domains[0].sans: "*.{{ ansible_nas_domain }}" traefik.http.routers.homeassistant.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
traefik.http.services.homeassistant.loadbalancer.server.port: "8123" traefik.http.services.homeassistant.loadbalancer.server.port: "8123"
memory: "{{ homeassistant_memory }}" memory: "{{ homeassistant_memory }}"
when: homeassistant_enabled is true
- name: Stop homeassistant
block:
- name: Stop homeassistant
community.docker.docker_container:
name: "{{ homeassistant_container_name }}"
state: absent
when: homeassistant_enabled is false

View file

@ -14,5 +14,10 @@ homebridge_group_id: "0"
homebridge_hostname: "homebridge" homebridge_hostname: "homebridge"
homebridge_port: "8087" homebridge_port: "8087"
# docker
homebridge_container_name: "homebridge"
homebridge_image_name: "oznu/homebridge"
homebridge_image_version: "latest"
# specs # specs
homebridge_memory: "1g" homebridge_memory: "1g"

View file

@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
homebridge_enabled: true

View file

@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
homebridge_enabled: false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Get homebridge container state
community.docker.docker_container:
name: "{{ homebridge_container_name }}"
register: result
- name: Check if homebridge containers are running
ansible.builtin.assert:
that:
- result.container['State']['Status'] == "running"
- result.container['State']['Restarting'] == false

View file

@ -0,0 +1,19 @@
---
- name: Verify
hosts: all
gather_facts: false
tasks:
- name: Include vars
ansible.builtin.include_vars:
file: ../../defaults/main.yml
- name: Try and stop and remove homebridge
community.docker.docker_container:
name: "{{ homebridge_container_name }}"
state: absent
register: result
- name: Check if homebridge is stopped
ansible.builtin.assert:
that:
- not result.changed

View file

@ -1,6 +1,8 @@
--- ---
- name: Start Homebridge
block:
- name: Create Homebridge Directories - name: Create Homebridge Directories
file: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"
state: directory state: directory
# mode: 0755 # mode: 0755
@ -8,9 +10,10 @@
- "{{ homebridge_config_directory }}" - "{{ homebridge_config_directory }}"
- name: Create Homebridge Docker Container - name: Create Homebridge Docker Container
docker_container: community.docker.docker_container:
name: homebridge container_default_behavior: no_defaults
image: oznu/homebridge name: "{{ homebridge_container_name }}"
image: "{{ homebridge_image_name }}:{{ homebridge_image_version }}"
pull: true pull: true
volumes: volumes:
- "{{ homebridge_config_directory }}:/homebridge" - "{{ homebridge_config_directory }}:/homebridge"
@ -30,3 +33,12 @@
traefik.http.routers.homebridge.tls.domains[0].main: "{{ ansible_nas_domain }}" traefik.http.routers.homebridge.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.homebridge.tls.domains[0].sans: "*.{{ ansible_nas_domain }}" traefik.http.routers.homebridge.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
traefik.http.services.homebridge.loadbalancer.server.port: "8087" traefik.http.services.homebridge.loadbalancer.server.port: "8087"
when: homebridge_enabled is true
- name: Stop Homebridge
block:
- name: Stop Homebridge
community.docker.docker_container:
name: "{{ homebridge_container_name }}"
state: absent
when: homebridge_enabled is false

View file

@ -11,5 +11,10 @@ jackett_torrents_root: "{{ torrents_root }}"
jackett_hostname: "jackett" jackett_hostname: "jackett"
jackett_port: "9117" jackett_port: "9117"
# docker
jackett_container_name: "jackett"
jackett_image_name: "linuxserver/jackett"
jackett_image_version: "latest"
# specs # specs
jackett_memory: "1g" jackett_memory: "1g"

View file

@ -0,0 +1,6 @@
---
provisioner:
inventory:
group_vars:
all:
jackett_enabled: true

View file

@ -0,0 +1,10 @@
---
- name: Stop
hosts: all
become: true
tasks:
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
ansible.builtin.include_role:
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
vars:
jackett_enabled: false

Some files were not shown because too many files have changed in this diff Show more