54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | |
| - name: "Configure restic and backup schedule"
 | |
|   hosts: all
 | |
| 
 | |
|   vars_files:
 | |
|     - vars/secrets.yml
 | |
|     - vars/secrets.yml
 | |
| 
 | |
|   vars:
 | |
|     restic_shell_script: "{{ (bin_prefix, 'restic-shell.sh') | path_join }}"
 | |
|     backup_all_script: "{{ (bin_prefix, 'backup-all.py') | path_join }}"
 | |
| 
 | |
|   tasks:
 | |
|     - name: "Copy restic shell script"
 | |
|       ansible.builtin.template:
 | |
|         src: "files/backups/restic-shell.sh.j2"
 | |
|         dest: "{{ restic_shell_script }}"
 | |
|         owner: root
 | |
|         group: root
 | |
|         mode: "0700"
 | |
| 
 | |
|     - name: "Copy backup all script"
 | |
|       ansible.builtin.template:
 | |
|         src: "files/backups/backup-all.template.py"
 | |
|         dest: "{{ backup_all_script }}"
 | |
|         owner: root
 | |
|         group: root
 | |
|         mode: "0700"
 | |
| 
 | |
|     - name: "Setup paths for backup cron file"
 | |
|       ansible.builtin.cron:
 | |
|         cron_file: "ansible_restic_backup"
 | |
|         user: "root"
 | |
|         env: true
 | |
|         name: "PATH"
 | |
|         job: "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
 | |
| 
 | |
|     - name: "Setup mail for backup cron file"
 | |
|       ansible.builtin.cron:
 | |
|         cron_file: "ansible_restic_backup"
 | |
|         user: "root"
 | |
|         env: true
 | |
|         name: "MAILTO"
 | |
|         job: ""
 | |
| 
 | |
|     - name: "Creates a cron file for backups under /etc/cron.d"
 | |
|       ansible.builtin.cron:
 | |
|         name: "restic backup"
 | |
|         minute: "0"
 | |
|         hour: "1"
 | |
|         job: "{{ backup_all_script }} 2>&1 | logger -t backup"
 | |
|         cron_file: "ansible_restic_backup"
 | |
|         user: "root"
 |