mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-10-31 02:10:05 +00:00 
			
		
		
		
	- Added '| sort' to all service group lists and backup routine lists to ensure
  deterministic ordering and stable checksums across Ansible runs.
- Adjusted systemctl templates to use a single service variable
  ('SYS_SERVICE_BACKUP_RMT_2_LOC') instead of rejecting dynamic list entries,
  making the ignore logic simpler and more predictable.
- Fixed minor whitespace inconsistencies in Jinja templates to avoid
  unnecessary changes.
This change was made to prevent spurious 'changed' states in Ansible caused by
non-deterministic list order and to reduce complexity in service definitions.
See discussion: https://chatgpt.com/share/68a74c20-6300-800f-a44e-da43ae2f3dea
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # Mapping logic for backup-docker-to-local CLI arguments
 | |
| #
 | |
| # - BKP_DOCKER_2_LOC_DB_ROUTINE:       All service names where backup.database_routine is set (for --database-containers)
 | |
| # - BKP_DOCKER_2_LOC_NO_STOP_REQUIRED: All images where backup.no_stop_required is set (for --images-no-stop-required)
 | |
| # - BKP_DOCKER_2_LOC_DISABLED:         All images where backup.disabled is set (for --images-no-backup-required)
 | |
| # CLI-ready variables render these lists as argument strings.
 | |
| 
 | |
| system_service_id: sys-ctl-bkp-docker-2-loc
 | |
| 
 | |
| # Verify if DB is enabled
 | |
| BKP_DOCKER_2_LOC_DB_ENABLED: "{{ database_type | default('') | bool }}"
 | |
| 
 | |
| # Gather mapped values as lists
 | |
| BKP_DOCKER_2_LOC_DB_ROUTINE: >-
 | |
|   {{ applications | find_dock_val_by_bkp_entr('database_routine', 'name') | list | sort }}
 | |
| 
 | |
| BKP_DOCKER_2_LOC_NO_STOP_REQUIRED: >-
 | |
|   {{ applications | find_dock_val_by_bkp_entr('no_stop_required', 'image') | list | sort }}
 | |
| 
 | |
| BKP_DOCKER_2_LOC_DISABLED: >-
 | |
|   {{ applications | find_dock_val_by_bkp_entr('disabled', 'image') | list | sort }}
 | |
| 
 | |
| # CLI argument strings (only set if list not empty)
 | |
| BKP_DOCKER_2_LOC_DB_ROUTINE_CLI: >-
 | |
|   {% if BKP_DOCKER_2_LOC_DB_ROUTINE | length > 0 -%}
 | |
|     --database-containers {{ BKP_DOCKER_2_LOC_DB_ROUTINE | join(' ') }}
 | |
|   {%- endif %}
 | |
| 
 | |
| BKP_DOCKER_2_LOC_NO_STOP_REQUIRED_CLI: >-
 | |
|   {% if BKP_DOCKER_2_LOC_NO_STOP_REQUIRED | length > 0 -%}
 | |
|     --images-no-stop-required {{ BKP_DOCKER_2_LOC_NO_STOP_REQUIRED | join(' ') }}
 | |
|   {%- endif %}
 | |
| 
 | |
| BKP_DOCKER_2_LOC_DISABLED_CLI: >-
 | |
|   {% if BKP_DOCKER_2_LOC_DISABLED | length > 0 -%}
 | |
|     --images-no-backup-required {{ BKP_DOCKER_2_LOC_DISABLED | join(' ') }}
 | |
|   {%- endif %}
 | |
| 
 | |
| # List of CLI args for convenience (e.g. for looping or joining)
 | |
| BKP_DOCKER_2_LOC_CLI_ARGS_LIST:
 | |
|   - "{{ BKP_DOCKER_2_LOC_DB_ROUTINE_CLI }}"
 | |
|   - "{{ BKP_DOCKER_2_LOC_NO_STOP_REQUIRED_CLI }}"
 | |
|   - "{{ BKP_DOCKER_2_LOC_DISABLED_CLI }}"
 | |
| 
 | |
| BKP_DOCKER_2_LOC_EXEC: >-
 | |
|   /usr/bin/python {{ backup_docker_to_local_folder }}backup-docker-to-local.py
 | |
|   --compose-dir {{ PATH_DOCKER_COMPOSE_INSTANCES }}
 | |
|   {{  BKP_DOCKER_2_LOC_CLI_ARGS_LIST | select('string') | join(' ') }}
 |