Very first cut at using ansible to run rdiff backups on backup03

This commit is contained in:
Kevin Fenzi 2013-07-23 17:26:34 +00:00
parent 5ae82572f1
commit de351bea39
5 changed files with 61 additions and 0 deletions

View 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

View 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"

View file

@ -44,6 +44,9 @@ ask01.stg.phx2.fedoraproject.org
backup02.fedoraproject.org
backup03.phx2.fedoraproject.org
[backup_clients]
people03.vpn.fedoraproject.org
[badges-backend]
badges-backend01.phx2.fedoraproject.org

View 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

View file

@ -6,3 +6,13 @@
- rdiff-backup
tags:
- 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