mirror of
https://pagure.io/fedora-infra/ansible.git
synced 2026-07-27 09:01:40 +08:00
Very first cut at using ansible to run rdiff backups on backup03
This commit is contained in:
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
|
||||
|
||||
Reference in New Issue
Block a user