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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -10,5 +10,10 @@ freshrss_extensions_directory: "{{ docker_home }}/freshrss"
freshrss_port: "8089"
freshrss_hostname: "freshrss"
# docker
freshrss_container_name: freshrss
freshrss_image_name: "freshrss/freshrss"
freshrss_image_version: latest
# specs
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
file:
ansible.builtin.file:
path: "{{ item }}"
state: directory
# mode: 0755
with_items:
- "{{ freshrss_data_directory }}/data"
- "{{ freshrss_extensions_directory }}/extensions"
- name: FreshRSS Docker Container
docker_container:
name: freshrss
image: freshrss/freshrss
community.docker.docker_container:
container_default_behavior: no_defaults
name: "{{ freshrss_container_name }}"
image: "{{ freshrss_image_name }}:{{ freshrss_image_version }}"
pull: true
volumes:
- "{{ 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].sans: "*.{{ ansible_nas_domain }}"
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
get_iplayer_port: "8182"
# docker
get_iplayer_container_name: "get_iplayer"
get_iplayer_image_name: "kolonuk/get_iplayer"
get_iplayer_image_version: "latest"
# specs
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
file:
ansible.builtin.file:
path: "{{ item }}"
state: directory
with_items:
- "{{ get_iplayer_config_directory }}"
- "{{ get_iplayer_download_directory }}"
- name: Get_iplayer Docker Container
docker_container:
name: get_iplayer
image: kolonuk/get_iplayer
- name: Create get_iplayer Docker Container
community.docker.docker_container:
container_default_behavior: no_defaults
name: "{{ get_iplayer_container_name }}"
image: "{{ get_iplayer_image_name }}:{{ get_iplayer_image_version }}"
pull: true
volumes:
- "{{ get_iplayer_config_directory }}:/root/.get_iplayer:rw"
@ -19,3 +22,12 @@
- "{{ get_iplayer_port }}:8181"
restart_policy: unless-stopped
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
gitea_hostname: "gitea"
gitea_network_name: "gitea"
gitea_port_http: "3001"
gitea_port_ssh: "222"
@ -16,4 +17,8 @@ gitea_mysql_memory: 1g
# docker
gitea_container_name: gitea
gitea_image_name: gitea/gitea
gitea_image_version: latest
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 }}/mysql"
- name: Create gitea network
community.docker.docker_network:
name: "{{ gitea_network_name }}"
- name: Create MySQL container for Gitea
docker_container:
community.docker.docker_container:
container_default_behavior: no_defaults
name: "{{ gitea_mysql_container_name }}"
image: mysql:5.7
image: "{{ gitea_mysql_image_name }}:{{ gitea_mysql_image_version }}"
pull: true
networks:
- name: "{{ gitea_network_name }}"
network_mode: "{{ gitea_network_name }}"
volumes:
- "{{ gitea_data_directory }}/mysql:/var/lib/mysql:rw"
env:
@ -26,12 +34,14 @@
memory: "{{ gitea_mysql_memory }}"
- name: Create Gitea container
docker_container:
name: gitea
image: gitea/gitea:latest
community.docker.docker_container:
container_default_behavior: no_defaults
name: "{{ gitea_container_name }}"
image: "{{ gitea_image_name }}:{{ gitea_image_version }}"
pull: true
links:
- gitea-mysql:db
networks:
- name: "{{ gitea_network_name }}"
network_mode: "{{ gitea_network_name }}"
volumes:
- "{{ gitea_data_directory }}/gitea:/data:rw"
ports:
@ -39,7 +49,7 @@
- "{{ gitea_port_ssh }}:22"
env:
DB_TYPE: "mysql"
DB_HOST: "db:3306"
DB_HOST: "{{ gitea_mysql_container_name }}:3306"
DB_NAME: "gitea"
DB_USER: "gitea"
DB_PASSWD: "gitea"

View file

@ -12,5 +12,12 @@ gitlab_port_http: "4080"
gitlab_port_https: "4443"
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
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.
- name: Create Gitlab group account
group:
@ -28,9 +30,10 @@
- "{{ gitlab_data_directory }}/data"
- name: Create Gitlab Docker Container
docker_container:
name: gitlab
image: gitlab/gitlab-ce:latest
community.docker.docker_container:
container_default_behavior: no_defaults
name: "{{ gitlab_container_name }}"
image: "{{ gitlab_image_name }}:{{ gitlab_image_version }}"
pull: true
volumes:
- "{{ 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].sans: "*.{{ ansible_nas_domain }}"
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:
- "apparmor=unconfined"
# docker
glances_container_name: "glances"
glances_image_name: "nicolargo/glances"
glances_image_version: "latest"
# specs
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
docker_container:
name: glances
image: nicolargo/glances
community.docker.docker_container:
container_default_behavior: no_defaults
name: "{{ glances_container_name }}"
image: "{{ glances_image_name }}:{{ glances_image_version }}"
pull: true
volumes:
- "/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].sans: "*.{{ ansible_nas_domain }}"
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
gotify_data_directory: "{{ docker_home }}/gotify"
# docker image to use
gotify_docker_image: gotify/server:latest
# network
gotify_port: "2346"
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_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
file:
ansible.builtin.file:
path: "{{ item }}"
state: directory
with_items:
- "{{ gotify_data_directory }}"
- name: Gotify Docker Container
docker_container:
name: gotify
image: "{{ gotify_docker_image }}"
community.docker.docker_container:
container_default_behavior: no_defaults
name: "{{ gotify_container_name }}"
image: "{{ gotify_image_name }}:{{ gotify_image_version }}"
pull: true
ports:
- "{{ 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].sans: "*.{{ ansible_nas_domain }}"
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_hostname: "guacamole"
# docker
guacamole_container_name: "guacamole"
guacamole_image_name: "oznu/guacamole"
guacamole_image_version: "latest"
# specs
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
file:
ansible.builtin.file:
path: "{{ item }}"
state: directory
with_items:
@ -26,9 +28,10 @@
- "{{ guacamole_data_directory }}/mysql"
- name: Guacamole Container
docker_container:
name: guacamole
image: "oznu/guacamole"
community.docker.docker_container:
container_default_behavior: no_defaults
name: "{{ guacamole_container_name }}"
image: "{{ guacamole_image_name }}:{{ guacamole_image_version }}"
pull: true
volumes:
- "{{ guacamole_data_directory }}/config:/config:rw"
@ -45,7 +48,17 @@
traefik.http.services.guacamole.loadbalancer.server.port: "8080"
- name: Restart Guacamole Container
docker_container:
name: guacamole
image: "oznu/guacamole"
community.docker.docker_container:
name: "{{ guacamole_container_name }}"
image: "{{ guacamole_image_name }}:{{ guacamole_image_version }}"
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
cron:
ansible.builtin.cron:
name: healthchecks.io
minute: "*/{{ healthchecks_ping_minutes }}"
user: root
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
gather_facts: false
tasks:
- include_vars:
- name: Include vars
include_vars:
file: ../../defaults/main.yml
- name: Get container state

View file

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

View file

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

View file

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

View file

@ -9,5 +9,10 @@ homeassistant_data_directory: "{{ docker_home }}/homeassistant"
homeassistant_port: "8123"
homeassistant_hostname: "homeassistant"
# docker
homeassistant_container_name: "homeassistant"
homeassistant_image_name: "homeassistant/home-assistant"
homeassistant_image_version: latest
# specs
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
file:
ansible.builtin.file:
path: "{{ item }}"
state: directory
with_items:
- "{{ homeassistant_data_directory }}/config"
- name: Home Assistant Docker Container
docker_container:
name: homeassistant
image: homeassistant/home-assistant
community.docker.docker_container:
container_default_behavior: no_defaults
name: "{{ homeassistant_container_name }}"
image: "{{ homeassistant_image_name }}:{{ homeassistant_image_version }}"
pull: true
volumes:
- "{{ homeassistant_data_directory }}/config:/config:rw"
@ -25,3 +28,12 @@
traefik.http.routers.homeassistant.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
traefik.http.services.homeassistant.loadbalancer.server.port: "8123"
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_port: "8087"
# docker
homebridge_container_name: "homebridge"
homebridge_image_name: "oznu/homebridge"
homebridge_image_version: "latest"
# specs
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
file:
ansible.builtin.file:
path: "{{ item }}"
state: directory
# mode: 0755
@ -8,9 +10,10 @@
- "{{ homebridge_config_directory }}"
- name: Create Homebridge Docker Container
docker_container:
name: homebridge
image: oznu/homebridge
community.docker.docker_container:
container_default_behavior: no_defaults
name: "{{ homebridge_container_name }}"
image: "{{ homebridge_image_name }}:{{ homebridge_image_version }}"
pull: true
volumes:
- "{{ 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].sans: "*.{{ ansible_nas_domain }}"
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_port: "9117"
# docker
jackett_container_name: "jackett"
jackett_image_name: "linuxserver/jackett"
jackett_image_version: "latest"
# specs
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