add docker_services_external_networks and docker_services_external_volumes variables

This commit is contained in:
tom.chivert
2025-12-01 14:55:32 +01:00
parent 1ec3c743eb
commit d7e0b254db
19 changed files with 130 additions and 23 deletions

View File

@@ -1,4 +1,8 @@
---
### Docker Services
docker_services_external_volumes: true
docker_services_external_networks: true
### Grafana
grafana_auth_anonymous_enabled: true
grafana_auth_anonymous_org_role: Viewer

View File

@@ -1,8 +1,10 @@
---
- name: add official GPG key
apt_key:
get_url:
url: https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg
state: present
dest: /etc/apt/trusted.gpg.d/docker.asc
mode: '0644'
force: true
tags: ['docker']
- name: add repository
@@ -21,6 +23,7 @@
- docker-compose-plugin
- python3-docker
state: present
ignore_errors: '{{ ansible_check_mode }}'
tags: ['docker']
- name: create docker-compose directory
@@ -35,6 +38,7 @@
name: docker
state: started
enabled: true
ignore_errors: '{{ ansible_check_mode }}'
tags: ['docker']
- name: copy rsyslog config

View File

@@ -11,11 +11,13 @@
- name: gitlab-runner | create docker network
docker_network:
name: 'gitlab-runner'
when: docker_services_external_networks
tags: ['docker_gitlab-runner']
- name: gitlab-runner | create docker volumes
docker_volume:
name: '{{ item }}'
when: docker_services_external_volumes
with_items:
- gitlab-runner-dind__var_lib_docker
- gitlab-runner-dind__certs
@@ -56,6 +58,7 @@
{% if gitlab_runner_extra_hosts is defined %}
extra_hosts = [{% for host in gitlab_runner_extra_hosts %}"{{ host }}"{{ ", " if not loop.last else "" }}{% endfor %}]
{% endif %}
when: docker_services_external_volumes
notify: 'gitlab-runner-restart'
tags: ['docker_gitlab-runner']

View File

@@ -12,6 +12,7 @@
- name: 'gitlab | create docker volumes'
docker_volume:
name: '{{ item }}'
when: docker_services_external_volumes
with_items:
- 'gitlab__etc_config'
- 'gitlab__var_log_gitlab'
@@ -21,11 +22,13 @@
- name: 'gitlab | create docker volume backup'
docker_volume:
name: 'gitlab__backups'
when: docker_services_external_volumes
tags: ['docker_gitlab']
- name: 'gitlab | create docker volume gitlab__run_secrets'
docker_volume:
name: 'gitlab__run_secrets'
when: docker_services_external_volumes
register: 'register_docker_volume_gitlab_gitlab__run_secrets'
tags: ['docker_gitlab']
@@ -34,6 +37,7 @@
dest: '{{ register_docker_volume_gitlab_gitlab__run_secrets.volume.Mountpoint }}/gitlab_root_password'
mode: '0600'
content: '{{ gitlab_root_password }}'
when: docker_services_external_volumes
ignore_errors: '{{ ansible_check_mode }}'
tags: ['docker_gitlab']

View File

@@ -14,14 +14,17 @@
- name: grafana | create docker volume data
docker_volume:
name: grafana__var_lib_grafana
when: docker_services_external_volumes
tags: ['docker_grafana']
- name: grafana | create provisioning dashboards docker volume
docker_volume:
name: grafana__etc_grafana_provisioning_dashboards
when: docker_services_external_volumes
tags: ['docker_grafana']
- name: grafana | create provisioning datasources docker volume
docker_volume:
name: grafana__etc_grafana_provisioning_datasources
when: docker_services_external_volumes
tags: ['docker_grafana']

View File

@@ -11,7 +11,6 @@
- ca-certificates
- curl
- gnupg-agent
- software-properties-common
- python3-pip
- virtualenv
- python3-setuptools

View File

@@ -12,17 +12,20 @@
- name: traefik | create docker network
docker_network:
name: 'traefik'
when: docker_services_external_networks
tags: ['docker_traefik']
- name: traefik | create letsencrypt docker volume
docker_volume:
name: traefik__letsencrypt
when: docker_services_external_volumes
register: register_docker_volume_traefik__letsencrypt
tags: ['docker_traefik']
- name: traefik | create config docker volume
docker_volume:
name: traefik__etc_traefik
when: docker_services_external_volumes
register: register_docker_volume_traefik__etc_traefik
tags: ['docker_traefik']
@@ -33,6 +36,7 @@
owner: root
group: root
mode: 0644
when: docker_services_external_volumes
notify: traefik-restart
tags: ['docker_traefik']
@@ -41,4 +45,5 @@
path: /var/lib/docker/volumes/traefik__etc_traefik/_data/dynamic
state: directory
mode: '0755'
when: docker_services_external_volumes
tags: ['docker_traefik']

View File

@@ -25,6 +25,7 @@
- name: wikijs | create docker network
docker_network:
name: 'wikijs'
when: docker_services_external_networks
tags:
- wikijs
tags: ['docker_wikijs']
@@ -32,6 +33,7 @@
- name: wikijs | create docker volumes
docker_volume:
name: "{{ item }}"
when: docker_services_external_volumes
with_items:
- wikijs__config
- wikijs__data

View File

@@ -11,6 +11,7 @@
- name: 'wireguard | create docker volumes'
docker_volume:
name: '{{ item }}'
when: docker_services_external_volumes
with_items:
- 'wireguard__etc_wireguard'
tags: ['docker_wireguard']

View File

@@ -1,5 +1,3 @@
version: '3.7'
services:
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest

View File

@@ -1,10 +1,14 @@
version: '3.7'
networks:
{% if docker_services_external_networks %}
gitlab-runner:
external: true
{% else %}
gitlab-runner:
name: gitlab-runner
{% endif %}
volumes:
{% if docker_services_external_volumes %}
gitlab-runner-dind__var_lib_docker:
external: true
gitlab-runner-dind__certs:
@@ -13,6 +17,16 @@ volumes:
external: true
gitlab-runner__etc_gitlab-runner:
external: true
{% else %}
gitlab-runner-dind__var_lib_docker:
name: gitlab-runner-dind__var_lib_docker
gitlab-runner-dind__certs:
name: gitlab-runner-dind__certs
gitlab-runner__home_gitlab-runner:
name: gitlab-runner__home_gitlab-runner
gitlab-runner__etc_gitlab-runner:
name: gitlab-runner__etc_gitlab-runner
{% endif %}
services:
gitlab-runner:

View File

@@ -1,10 +1,14 @@
version: '3.7'
networks:
{% if docker_services_external_networks %}
traefik:
external: true
{% else %}
traefik:
name: traefik
{% endif %}
volumes:
{% if docker_services_external_volumes %}
gitlab__etc_config:
external: true
gitlab__var_log_gitlab:
@@ -15,6 +19,18 @@ volumes:
external: true
gitlab__run_secrets:
external: true
{% else %}
gitlab__etc_config:
name: gitlab__etc_config
gitlab__var_log_gitlab:
name: gitlab__var_log_gitlab
gitlab__var_opt_gitlab:
name: gitlab__var_opt_gitlab
gitlab__backups:
name: gitlab__backups
gitlab__run_secrets:
name: gitlab__run_secrets
{% endif %}
services:
gitlab:

View File

@@ -1,17 +1,28 @@
---
version: '3.7'
networks:
{% if docker_services_external_networks %}
traefik:
external: true
{% else %}
traefik:
name: traefik
{% endif %}
volumes:
{% if docker_services_external_volumes %}
grafana__var_lib_grafana:
external: true
grafana__etc_grafana_provisioning_dashboards:
external: true
grafana__etc_grafana_provisioning_datasources:
external: true
{% else %}
grafana__var_lib_grafana:
name: grafana__var_lib_grafana
grafana__etc_grafana_provisioning_dashboards:
name: grafana__etc_grafana_provisioning_dashboards
grafana__etc_grafana_provisioning_datasources:
name: grafana__etc_grafana_provisioning_datasources
{% endif %}
services:
grafana:

View File

@@ -1,8 +1,11 @@
version: '3.7'
networks:
{% if docker_services_external_networks %}
traefik:
external: true
{% else %}
traefik:
name: traefik
{% endif %}
services:
maildev:

View File

@@ -1,11 +1,20 @@
version: '3.7'
networks:
{% if docker_services_external_networks %}
traefik:
external: true
{% else %}
traefik:
name: traefik
{% endif %}
volumes:
{% if docker_services_external_volumes %}
redisinsight__db:
external: true
{% else %}
redisinsight__db:
name: redisinsight__db
{% endif %}
services:
redisinsight:

View File

@@ -1,15 +1,24 @@
---
version: '3.7'
networks:
{% if docker_services_external_networks %}
traefik:
external: true
{% else %}
traefik:
name: traefik
{% endif %}
volumes:
{% if docker_services_external_volumes %}
traefik__etc_traefik:
external: true
traefik__letsencrypt:
external: true
{% else %}
traefik__etc_traefik:
name: traefik__etc_traefik
traefik__letsencrypt:
name: traefik__letsencrypt
{% endif %}
services:
traefik:

View File

@@ -1,5 +1,3 @@
version: '3.7'
services:
watchtower:
image: containrrr/watchtower:latest

View File

@@ -1,16 +1,32 @@
networks:
{% if docker_services_external_networks %}
traefik:
external: true
wikijs:
external: true
{% else %}
traefik:
name: traefik
wikijs:
name: wikijs
{% endif %}
volumes:
{% if docker_services_external_volumes %}
wikijs__config:
external: true
wikijs__data:
external: true
wikijs_db__var_lib_mysql:
external: true
{% else %}
wikijs__config:
name: wikijs__config
wikijs__data:
name: wikijs__data
wikijs_db__var_lib_mysql:
name: wikijs_db__var_lib_mysql
{% endif %}
services:
wikijs_db:

View File

@@ -1,12 +1,20 @@
version: '3.7'
networks:
{% if docker_services_external_networks %}
traefik:
external: true
{% else %}
traefik:
name: traefik
{% endif %}
volumes:
{% if docker_services_external_volumes %}
wireguard__etc_wireguard:
external: true
{% else %}
wireguard__etc_wireguard:
name: wireguard__etc_wireguard
{% endif %}
services:
wireguard: