database_name = site[:database_name] || node[:osqa][:database_name]
database_user = site[:database_user] || node[:osqa][:database_user]
database_password = site[:database_user] || node[:osqa][:database_password]
+ backup_name = site[:backup]
apache_site name do
template "apache.erb"
content settings
notifies :reload, "service[apache2]"
end
+
+ template "/etc/cron.daily/#{backup_name}-backup" do
+ source "backup.cron.erb"
+ owner "root"
+ group "root"
+ mode 0755
+ variables :name => backup_name, :directory => directory, :user => site_user, :database => database_name
+ end
end
--- /dev/null
+#!/bin/sh
+
+# DO NOT EDIT - This file is being maintained by Chef
+
+T=$(mktemp -d -t -p /var/tmp osqa.XXXXXXXXXX)
+D=$(date +%Y-%m-%d)
+B=<%= @name %>-$D.tar.gz
+
+mkdir $T/<%= @name %>-$D
+chown <%= @user %> $T
+chown <%= @user %> $T/osqa-$D
+sudo -u <%= @user %> pg_dump --format=custom --file=$T/<%= @name %>-$D/osqa.dmp <%= @database %>
+ln -s <%= @directory %>/upfiles $T/<%= @name %>-$D/upfiles
+
+export GZIP="--rsyncable -9"
+export RSYNC_RSH="ssh -ax -c arcfour"
+
+nice tar --create --gzip --dereference --directory=$T --file=$T/$B <%= @name %>-$D
+nice rsync $T/$B backup::backup
+
+rm -rf $T
},
:osqa => {
:sites => [
- { :name => "help.openstreetmap.org" }
+ { :name => "help.openstreetmap.org", :backup => "osqa" }
]
}
)