From 7145213f450936c9df654f7a30649dc85db10e79 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Wed, 16 Jul 2025 20:49:20 +0200 Subject: [PATCH] Finished new backup implementation logik --- ...sys-bkp-docker-2-loc-everything.service.j2 | 4 +- .../templates/sys-bkp-docker-2-loc.service.j2 | 2 +- roles/sys-bkp-docker-2-loc/vars/main.yml | 44 +++++++++++++++++++ 3 files changed, 47 insertions(+), 3 deletions(-) diff --git a/roles/sys-bkp-docker-2-loc/templates/sys-bkp-docker-2-loc-everything.service.j2 b/roles/sys-bkp-docker-2-loc/templates/sys-bkp-docker-2-loc-everything.service.j2 index f3654380..5102c098 100644 --- a/roles/sys-bkp-docker-2-loc/templates/sys-bkp-docker-2-loc-everything.service.j2 +++ b/roles/sys-bkp-docker-2-loc/templates/sys-bkp-docker-2-loc-everything.service.j2 @@ -1,9 +1,9 @@ [Unit] -Description=backup docker volumes to local folder +Description=backup all docker volumes to local folder OnFailure=sys-alm-compose.cymais@%n.service sys-cln-faild-bkps.cymais.service [Service] Type=oneshot ExecStartPre=/bin/sh -c '/usr/bin/python {{ path_system_lock_script }} {{ system_maintenance_services | join(' ') }} --ignore {{ system_maintenance_backup_services | reject('equalto', 'sys-bkp-docker-2-loc') | join(' ') }} --timeout "{{system_maintenance_lock_timeout_backup_services}}"' -ExecStart=/bin/sh -c '/usr/bin/python {{backup_docker_to_local_folder}}backup-docker-to-local.py --compose-dir {{path_docker_compose_instances}} --everything' +ExecStart=/bin/sh -c '{{ bkp_docker_to_local_exec }} --everything' ExecStartPost=/bin/sh -c '/bin/systemctl start sys-rpr-docker-soft.cymais.service &' \ No newline at end of file diff --git a/roles/sys-bkp-docker-2-loc/templates/sys-bkp-docker-2-loc.service.j2 b/roles/sys-bkp-docker-2-loc/templates/sys-bkp-docker-2-loc.service.j2 index a8d111ef..100b5c69 100644 --- a/roles/sys-bkp-docker-2-loc/templates/sys-bkp-docker-2-loc.service.j2 +++ b/roles/sys-bkp-docker-2-loc/templates/sys-bkp-docker-2-loc.service.j2 @@ -5,5 +5,5 @@ OnFailure=sys-alm-compose.cymais@%n.service sys-cln-faild-bkps.cymais.service [Service] Type=oneshot ExecStartPre=/bin/sh -c '/usr/bin/python {{ path_system_lock_script }} {{ system_maintenance_services | join(' ') }} --ignore {{ system_maintenance_backup_services | reject('equalto', 'sys-bkp-docker-2-loc-everything') | join(' ') }} --timeout "{{system_maintenance_lock_timeout_backup_services}}"' -ExecStart=/bin/sh -c '/usr/bin/python {{backup_docker_to_local_folder}}backup-docker-to-local.py --compose-dir {{path_docker_compose_instances}}' +ExecStart=/bin/sh -c '{{ bkp_docker_to_local_exec }}' ExecStartPost=/bin/sh -c '/bin/systemctl start sys-rpr-docker-soft.cymais.service &' \ No newline at end of file diff --git a/roles/sys-bkp-docker-2-loc/vars/main.yml b/roles/sys-bkp-docker-2-loc/vars/main.yml index d49412d8..282b7f0e 100644 --- a/roles/sys-bkp-docker-2-loc/vars/main.yml +++ b/roles/sys-bkp-docker-2-loc/vars/main.yml @@ -1,2 +1,46 @@ bkp_docker_to_local_pkg: backup-docker-to-local +# Mapping logic for backup-docker-to-local CLI arguments +# +# - bkp_docker_to_local_database_routine: All service names where backup.database_routine is set (for --database-containers) +# - bkp_docker_to_local_no_stop_required: All images where backup.no_stop_required is set (for --images-no-stop-required) +# - bkp_docker_to_local_disabled: All images where backup.disabled is set (for --images-no-backup-required) +# CLI-ready variables render these lists as argument strings. + +# Gather mapped values as lists +bkp_docker_to_local_database_routine: >- + {{ applications | find_dock_val_by_bkp_entr('database_routine', 'name') | list }} + +bkp_docker_to_local_no_stop_required: >- + {{ applications | find_dock_val_by_bkp_entr('no_stop_required', 'image') | list }} + +bkp_docker_to_local_disabled: >- + {{ applications | find_dock_val_by_bkp_entr('disabled', 'image') | list }} + +# CLI argument strings (only set if list not empty) +bkp_docker_to_local_database_routine_cli: >- + {% if bkp_docker_to_local_database_routine | length > 0 -%} + --database-containers="{{ bkp_docker_to_local_database_routine | join(' ') }}" + {%- endif %} + +bkp_docker_to_local_no_stop_required_cli: >- + {% if bkp_docker_to_local_no_stop_required | length > 0 -%} + --images-no-stop-required="{{ bkp_docker_to_local_no_stop_required | join(' ') }}" + {%- endif %} + +bkp_docker_to_local_disabled_cli: >- + {% if bkp_docker_to_local_disabled | length > 0 -%} + --images-no-backup-required="{{ bkp_docker_to_local_disabled | join(' ') }}" + {%- endif %} + +# List of CLI args for convenience (e.g. for looping or joining) +bkp_docker_to_local_cli_args_list: + - "{{ bkp_docker_to_local_database_routine_cli }}" + - "{{ bkp_docker_to_local_no_stop_required_cli }}" + - "{{ bkp_docker_to_local_disabled_cli }}" + +bkp_docker_to_local_exec: >- + /usr/bin/python {{ backup_docker_to_local_folder }}backup-docker-to-local.py + --compose-dir {{ path_docker_compose_instances }} + {{ bkp_docker_to_local_cli_args_list | select('string') | join(' ') }} + | trim \ No newline at end of file