From 12b88b57a15d28d6ec3321f2f37f7ad878d94631 Mon Sep 17 00:00:00 2001 From: Ralph Bean Date: Fri, 10 Jan 2014 21:29:20 +0000 Subject: [PATCH] Cron backups for db-datanommer01. --- inventory/group_vars/all | 3 +++ .../db-datanommer01.phx2.fedoraproject.org | 4 ++++ roles/postgresql_server/tasks/main.yml | 13 +++++++++++++ .../templates/cron-backup-database | 1 + 4 files changed, 21 insertions(+) create mode 100644 roles/postgresql_server/templates/cron-backup-database diff --git a/inventory/group_vars/all b/inventory/group_vars/all index 6aa997c21f..43534d4cca 100644 --- a/inventory/group_vars/all +++ b/inventory/group_vars/all @@ -39,6 +39,9 @@ virt_install_command: /usr/sbin/virt-install -n {{ inventory_hostname }} -r {{ m # By default, nodes get no fedmsg certs. They need to declare them explicitly. fedmsg_certs: [] +# By default, nodes don't backup any dbs on them unless they declare it. +dbs_to_backup: [] + # by default the number of procs we allow before we whine nrpe_procs_warn: 175 nrpe_procs_crit: 200 diff --git a/inventory/host_vars/db-datanommer01.phx2.fedoraproject.org b/inventory/host_vars/db-datanommer01.phx2.fedoraproject.org index ca9a8fb65e..17c1601cf9 100644 --- a/inventory/host_vars/db-datanommer01.phx2.fedoraproject.org +++ b/inventory/host_vars/db-datanommer01.phx2.fedoraproject.org @@ -8,6 +8,10 @@ volgroup: /dev/vg_guests00 eth0_ip: 10.5.126.109 vmhost: virthost14.phx2.fedoraproject.org datacenter: phx2 + +dbs_to_backup: +- datanommer + # These are normally group variables, but in this case db servers are often different lvm_size: 300000 mem_size: 8192 diff --git a/roles/postgresql_server/tasks/main.yml b/roles/postgresql_server/tasks/main.yml index 6b4e4c3ae8..b459e79155 100644 --- a/roles/postgresql_server/tasks/main.yml +++ b/roles/postgresql_server/tasks/main.yml @@ -32,3 +32,16 @@ - restart postgresql tags: - config + +- name: Ensure postgres has a place to backup to + file: dest=/backups state=directory owner=postgres + +- name: Set up some cronjobs to backup databases as configured + template: > + src=cron-backup-database + dest=/etc/cron.d/cron-backup-database-{{ item }} + with_items: + - "{{ dbs_to_backup }}" + when: dbs_to_backup != [] + tags: + - cron diff --git a/roles/postgresql_server/templates/cron-backup-database b/roles/postgresql_server/templates/cron-backup-database new file mode 100644 index 0000000000..2f197d590a --- /dev/null +++ b/roles/postgresql_server/templates/cron-backup-database @@ -0,0 +1 @@ +0 0 * * * postgres /usr/bin/pg_dump -C {{ item }} | /usr/bin/xz > /backups/{{ item }}-$(date +%F).dump.xz