mirror of
				https://github.com/borgbase/ansible-role-borgbackup.git
				synced 2025-10-25 11:24:41 +02:00 
			
		
		
		
	- fix truthy values to proper booleans - fix too long lines: wrapped - fix indentation - fix amount of preceding whitespace - fix argument_spec syntax: borg_retention_policy as type dict with specific options
		
			
				
	
	
		
			68 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | |
| - name: Register existence of Borgmatic cron file.
 | |
|   cron:
 | |
|     name: "{{ borgmatic_timer_cron_name }}"
 | |
|     cron_file: "{{ borgmatic_timer_cron_name }}"
 | |
|     state: absent
 | |
|   check_mode: true
 | |
|   register: cron_file_exists
 | |
|   ignore_errors: true
 | |
| 
 | |
| - name: Ensure no Borgmatic Cron file exists.
 | |
|   ansible.builtin.assert:
 | |
|     that:
 | |
|       - not cron_file_exists.changed
 | |
|       - not cron_file_exists.failed or "Failed to find" in cron_file_exists.msg
 | |
|     fail_msg: Found an existing Borgmatic Cron job. Please remove before using Systemd timer.
 | |
| 
 | |
| - name: Create borgbackup timer
 | |
|   block:
 | |
|     - name: Copy systemd files
 | |
|       ansible.builtin.template:
 | |
|         src: "{{ item.src }}"
 | |
|         dest: "{{ item.dest }}"
 | |
|         owner: root
 | |
|         group: root
 | |
|         backup: true
 | |
|         mode: "{{ item.mode }}"
 | |
|       with_items:
 | |
|         - { src: "borgmatic.timer.j2", dest: "/usr/lib/systemd/system/borgmatic.timer", mode: "0644" }
 | |
|         - { src: "borgmatic.service.j2", dest: "/usr/lib/systemd/system/borgmatic.service", mode: "0644" }
 | |
| 
 | |
|     - name: Populate service facts
 | |
|       ansible.builtin.service_facts:
 | |
| 
 | |
|       # If the role is running and the repo is not yet initialized, an error will occur.
 | |
|       # Therefore the service is stopped by default and must be started manually.
 | |
|     - name: Stop fresh installed borgmatic.timer and borgmatic.service
 | |
|       when: "'borgmatic.service' not in ansible_facts.services"
 | |
|       block:
 | |
|         - name: Set borgmatic services to stopped - newly installed
 | |
|           ansible.builtin.systemd:
 | |
|             name: "{{ item }}"
 | |
|             state: stopped
 | |
|             enabled: false
 | |
|             masked: false
 | |
|             daemon_reload: true
 | |
|           when: item in ansible_facts.services
 | |
|           with_items:
 | |
|             - borgmatic.service
 | |
| 
 | |
|         # bug: Need own section without masked else the timer are skipped
 | |
|         - name: Set borgmatic timers to stopped - newly installed
 | |
|           ansible.builtin.systemd:
 | |
|             name: "{{ item }}"
 | |
|             state: stopped
 | |
|             enabled: false
 | |
|             daemon_reload: true
 | |
|           with_items:
 | |
|             - "borgmatic.timer"
 | |
| 
 | |
|         - name: Show hints
 | |
|           when: "'backup_init_repo' not in ansible_run_tags"
 | |
|           ansible.builtin.debug:
 | |
|             msg: >-
 | |
|               Attention: Since the repo was not initialized automatically,
 | |
|               the systemd service (borgmatic.service) and the timer (borgmatic.timer) are not activated.              
 | |
| ...
 |