Very first cut at using ansible to run rdiff backups on backup03
This commit is contained in:
parent
5ae82572f1
commit
de351bea39
5 changed files with 61 additions and 0 deletions
9
files/rdiff-backup/run-rdiff-backups
Normal file
9
files/rdiff-backup/run-rdiff-backups
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
source /root/sshagent >>/dev/null
|
||||||
|
|
||||||
|
TMPDIR=`mktemp -d /tmp/backups.XXXX`
|
||||||
|
|
||||||
|
cd $TMPDIR
|
||||||
|
git clone http://infrastructure.fedoraproject.org/ansible.git
|
||||||
|
ansible-playbook -i ansible/inventory ansible/playbooks/rdiff-backup.yml
|
3
files/rdiff-backup/run-rdiff-backups.cron
Normal file
3
files/rdiff-backup/run-rdiff-backups.cron
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# run rdiff backups
|
||||||
|
MAILTO=kevin@scrye.com
|
||||||
|
00 22 * * * root /usr/local/bin/lock-wrapper run-rdiff-backups "/usr/local/bin/run-rdiff-backups"
|
|
@ -44,6 +44,9 @@ ask01.stg.phx2.fedoraproject.org
|
||||||
backup02.fedoraproject.org
|
backup02.fedoraproject.org
|
||||||
backup03.phx2.fedoraproject.org
|
backup03.phx2.fedoraproject.org
|
||||||
|
|
||||||
|
[backup_clients]
|
||||||
|
people03.vpn.fedoraproject.org
|
||||||
|
|
||||||
[badges-backend]
|
[badges-backend]
|
||||||
badges-backend01.phx2.fedoraproject.org
|
badges-backend01.phx2.fedoraproject.org
|
||||||
|
|
||||||
|
|
36
playbooks/rdiff-backup.yml
Normal file
36
playbooks/rdiff-backup.yml
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# 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
|
||||||
|
# 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 echo rdiff-backup ${inventory_hostname}::${item} /fedora_backups/${inventory_hostname}/`basename ${item}`"
|
||||||
|
with_items: $global_backup_targets
|
||||||
|
when: global_backup_targets is defined
|
||||||
|
serial: 5
|
||||||
|
async: 100000
|
||||||
|
poll: 120
|
||||||
|
|
||||||
|
- name: run rdiff-backup hitting all the host targets
|
||||||
|
local_action: "shell echo rdiff-backup ${inventory_hostname}::${item} /fedora_backups/${inventory_hostname}/`basename ${item}`"
|
||||||
|
with_items: $host_backup_targets
|
||||||
|
when: host_backup_targets is defined
|
||||||
|
serial: 5
|
||||||
|
async: 100000
|
||||||
|
poll: 120
|
||||||
|
|
|
@ -6,3 +6,13 @@
|
||||||
- rdiff-backup
|
- rdiff-backup
|
||||||
tags:
|
tags:
|
||||||
- packages
|
- packages
|
||||||
|
|
||||||
|
- name: setup rdiff backup script
|
||||||
|
copy: src=$files/rdiff-backup/run-rdiff-backups dest=/usr/local/bin/run-rdiff-backups
|
||||||
|
tags:
|
||||||
|
- config
|
||||||
|
|
||||||
|
- name: setup rdiff backup cron
|
||||||
|
cron: cron_file=$files/rdiff-backup/run-rdiff-backups.cron
|
||||||
|
tags:
|
||||||
|
- config
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue