mirror of
				https://github.com/borgbase/ansible-role-borgbackup.git
				synced 2025-11-04 01:19:32 +01: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.              
 | 
						|
...
 |