mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-12-03 16:09:29 +00:00
- Replace legacy utils/run_once.yml with the new helpers utils/once_flag.yml and utils/once_finalize.yml - Introduce utils/compose_up.yml to ensure docker-compose stacks are up and to flush handlers safely without coupling to run-once flags - Migrate all affected roles (desk-*, dev-*, sys-ctl-*, sys-svc-*, web-app-*, web-svc-*, util-*) to the new run-once helpers - Rework sys-svc-msmtp to auto-load Mailu once per deploy, check reachability, and reuse the running stack instead of requiring multiple playbook passes - Adjust web-app-mailu to integrate cert deployment, handler flushing, and run-once handling so Mailu is fully initialized in a single deploy - Improve Matomo, CDN, logout and CSP/health-check related roles to cooperate with the new compose_up / once_* pattern - Simplify alarm/backup/timer/service orchestration (sys-ctl-alm-*, sys-bkp-provider, sys-timer-cln-bkps, etc.) by moving run-once logic into dedicated 01_core.yml files - Update integration tests so utils/once_flag.yml and utils/once_finalize.yml are recognised as valid run-once providers, keeping the global run_once_* guarantees consistent - Align frontend injection and service dependencies so Mastodon- and Mailu-related services can be brought up coherently within a single deployment cycle rather than several iterations
51 lines
1.6 KiB
YAML
51 lines
1.6 KiB
YAML
|
|
- name: Create Docker network for MariaDB
|
|
community.docker.docker_network:
|
|
name: "{{ mariadb_network_name }}"
|
|
state: present
|
|
ipam_config:
|
|
- subnet: "{{ mariadb_subnet }}"
|
|
|
|
- name: install MariaDB
|
|
community.docker.docker_container:
|
|
name: "{{ mariadb_name }}"
|
|
image: "{{ mariadb_image }}:{{ mariadb_version}}"
|
|
detach: yes
|
|
env:
|
|
MARIADB_ROOT_PASSWORD: "{{ mariadb_root_pwd }}"
|
|
MARIADB_AUTO_UPGRADE: "1"
|
|
networks:
|
|
- name: "{{ mariadb_network_name }}"
|
|
volumes:
|
|
- "{{ mariadb_volume }}:/var/lib/mysql"
|
|
published_ports:
|
|
- "127.0.0.1:{{ mariadb_port }}:3306" # can be that this will be removed if all applications use sockets
|
|
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW" #for nextcloud
|
|
restart_policy: "{{ DOCKER_RESTART_POLICY }}"
|
|
healthcheck:
|
|
test: "/usr/bin/mariadb --user=root --password={{ mariadb_root_pwd }} --execute \"SHOW DATABASES;\""
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 18
|
|
register: setup_mariadb_container_result
|
|
|
|
- name: install python-mysqlclient
|
|
community.general.pacman:
|
|
name: python-mysqlclient
|
|
state: present
|
|
|
|
- name: "Wait until the MariaDB container with hostname '{{ mariadb_name }}' is healthy"
|
|
community.docker.docker_container_info:
|
|
name: "{{ mariadb_name }}"
|
|
register: db_info
|
|
until:
|
|
- db_info.container is defined
|
|
- db_info.container.State.Health.Status == "healthy"
|
|
retries: 30
|
|
delay: 5
|
|
when:
|
|
- setup_mariadb_container_result is defined
|
|
- setup_mariadb_container_result.changed
|
|
|
|
- include_tasks: utils/once_finalize.yml
|