diff --git a/ansible/playbooks/pve-backup-jobs.yml b/ansible/playbooks/pve-backup-jobs.yml index f58b14c..52c8b70 100644 --- a/ansible/playbooks/pve-backup-jobs.yml +++ b/ansible/playbooks/pve-backup-jobs.yml @@ -1,3 +1,7 @@ +# Списки VMID выводятся из реестра homelab_services по полю backup.job, а не +# перечисляются вручную. Раньше добавление сервиса требовало отдельной правки +# здесь, и о ней легко было забыть — CT 148 emergency-bot до сих пор без бэкапа +# именно по этой причине. - name: Configure Proxmox backup jobs hosts: mini-pc gather_facts: false @@ -6,7 +10,10 @@ - id: homelab-pbs-daily-cloud comment: Daily PBS backup for cloud-pc service containers node: cloud-pc - vmid: 141,145,146,147,149 + vmid: >- + {{ homelab_services.values() | selectattr('backup.job', 'defined') + | selectattr('backup.job', 'eq', 'homelab-pbs-daily-cloud') + | map(attribute='vmid') | sort | join(',') }} storage: pbs schedule: "02:10" mode: snapshot @@ -14,7 +21,10 @@ - id: homelab-pbs-daily-mini comment: Daily PBS backup for mini-pc service containers node: mini-pc - vmid: 132,140,142,143,144,150 + vmid: >- + {{ homelab_services.values() | selectattr('backup.job', 'defined') + | selectattr('backup.job', 'eq', 'homelab-pbs-daily-mini') + | map(attribute='vmid') | sort | join(',') }} storage: pbs schedule: "02:40" mode: snapshot @@ -22,7 +32,10 @@ - id: homelab-local-weekly-pbs comment: Weekly local backup for PBS container rootfs/config node: cloud-pc - vmid: 120 + vmid: >- + {{ homelab_services.values() | selectattr('backup.job', 'defined') + | selectattr('backup.job', 'eq', 'homelab-local-weekly-pbs') + | map(attribute='vmid') | sort | join(',') }} storage: backup schedule: "Sun 03:30" mode: snapshot diff --git a/ansible/roles/backup_audit/defaults/main.yml b/ansible/roles/backup_audit/defaults/main.yml index 6a9acdd..a58c869 100644 --- a/ansible/roles/backup_audit/defaults/main.yml +++ b/ansible/roles/backup_audit/defaults/main.yml @@ -3,29 +3,22 @@ backup_audit_log_file: /var/log/homelab-backup-audit.log backup_audit_timer_oncalendar: "*-*-* 06:00:00" backup_audit_timer_randomized_delay: 10m -backup_audit_pbs_vmids: - - vmid: 132 - max_age_hours: 48 - - vmid: 140 - max_age_hours: 48 - - vmid: 141 - max_age_hours: 48 - - vmid: 142 - max_age_hours: 48 - - vmid: 143 - max_age_hours: 48 - - vmid: 144 - max_age_hours: 48 - - vmid: 145 - max_age_hours: 48 - - vmid: 146 - max_age_hours: 48 - - vmid: 147 - max_age_hours: 48 - - vmid: 149 - max_age_hours: 48 - - vmid: 150 - max_age_hours: 48 +# Единый порог свежести для всех PBS-снапшотов. Вынесен отдельно, потому что +# сам список VMID теперь выводится из реестра и per-vmid значения в нём нет. +backup_audit_pbs_max_age_hours: 48 + +# VMID берутся из homelab_services по флагу monitoring.backup_audit_vmid, а не +# перечисляются вручную. Форма записи ({vmid, max_age_hours}) сохранена, чтобы +# вызывающий playbook при необходимости мог передать свой список с иными +# порогами — шаблон audit-pbs.sh.j2 читает именно эти два поля. +backup_audit_pbs_vmids: >- + {{ homelab_services.values() + | selectattr('monitoring.backup_audit_vmid', 'defined') + | selectattr('monitoring.backup_audit_vmid') + | map(attribute='vmid') | sort + | map('community.general.dict_kv', 'vmid') + | map('combine', {'max_age_hours': backup_audit_pbs_max_age_hours}) + | list }} backup_audit_restic_profiles: [] backup_audit_metrics_dir: /var/lib/node_exporter/textfile_collector