ansible/playbooks/rdiff-backup.yml
Kevin Fenzi 256b145135 Change how we backup database dumps.
We had been using rdiff-backup, which was easy to do, but it makes
very little sense with database backups to bother doing that.
Instead we just rsync them over and don't bother with looking at
chunks that may or may not be duplicated. This should make the daily
backup runs much faster.
2017-10-05 22:17:46 +00:00

35 lines
2.1 KiB
YAML

# all this does is use the ansible scheduler to allow you to fork off
# a set number of rdiff-backup runs against an array of backup targets
# Since rdiff-backup doesn't have its own built-in-scheduler
# this seemed like an obvious cheat
- name: rdiff-backup
hosts: backup_clients
user: root
gather_facts: False
serial: 10
# host_backup_targets set in host_vars or group_vars
# global_backup_targets can be defined in vars, group_vars/all or anywhere
# take the 'echo' out below for it to actually run
# FIXME - see how this copes with timeouts
# FIXME - storing/reporting results and output?
# FIXME - coping with errors?
vars:
- global_backup_targets: ['/etc', '/home']
tasks:
- name: run rdiff-backup hitting all the global targets
local_action: "shell rdiff-backup --remote-schema 'ssh -p {{ ansible_port|default(22) }} -C %s rdiff-backup --server' --create-full-path --print-statistics {{ inventory_hostname }}::{{ item }} /fedora_backups/{{ inventory_hostname }}/`basename {{ item }}` | mail -r sysadmin-backup-members@fedoraproject.org -s 'rdiff-backup: {{ inventory_hostname }}:{{ item }}' sysadmin-backup-members@fedoraproject.org"
with_items: '{{ global_backup_targets }}'
when: global_backup_targets is defined
- name: copy new database dumps into the backup server database dir
local_action: "shell rsync -a {{ inventory_hostname }}:{{ item }}/ /fedora_backups/databases/{{ inventory_hostname }}/"
with_items: '{{ db_backup_dir }}'
when: db_backup_dir is defined
- name: run rdiff-backup hitting all the host targets
local_action: "shell rdiff-backup --remote-schema 'ssh -p {{ ansible_port|default(22) }} -C %s rdiff-backup --server' --exclude='**git-seed*' --exclude='**git_seed' --exclude='**.snapshot' --create-full-path --print-statistics {{ inventory_hostname }}::{{ item }} /fedora_backups/{{ inventory_hostname }}/`basename {{ item }}` | mail -r sysadmin-backup-members@fedoraproject.org -s 'rdiff-backup: {{ inventory_hostname }}:{{ item }}' sysadmin-backup-members@fedoraproject.org"
with_items: '{{ host_backup_targets }}'
when: host_backup_targets is defined