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
|
||||
backup03.phx2.fedoraproject.org
|
||||
|
||||
[backup_clients]
|
||||
people03.vpn.fedoraproject.org
|
||||
|
||||
[badges-backend]
|
||||
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
|
||||
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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue