summaryrefslogtreecommitdiff
path: root/puppet/modules/site_couchdb
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2013-10-31 00:48:37 +0100
committervarac <varacanero@zeromail.org>2013-10-31 18:29:38 +0100
commitce084fbbe5980497b8b3f3e643e6b618c4fa0b0a (patch)
tree5a21994dd1ee40bae965e6865329e35bf9baeb61 /puppet/modules/site_couchdb
parent39ad06e91c959a3503cde763121fe4b8cdf10c19 (diff)
Automate local backup of couchdb data (Feature #4350)
Diffstat (limited to 'puppet/modules/site_couchdb')
-rw-r--r--puppet/modules/site_couchdb/manifests/backup.pp12
-rw-r--r--puppet/modules/site_couchdb/manifests/init.pp25
2 files changed, 37 insertions, 0 deletions
diff --git a/puppet/modules/site_couchdb/manifests/backup.pp b/puppet/modules/site_couchdb/manifests/backup.pp
new file mode 100644
index 00000000..ef505693
--- /dev/null
+++ b/puppet/modules/site_couchdb/manifests/backup.pp
@@ -0,0 +1,12 @@
+class site_couchdb::backup {
+
+ # general backupninja config
+ backupninja::config { 'backupninja_config':
+ usecolors => false,
+ }
+
+ # dump all DBs locally to /var/backups/couchdb once a day
+ backupninja::sh { 'couchdb_backup':
+ command_string => "cd /srv/leap/couchdb/scripts \n./couchdb_dumpall.sh"
+ }
+}
diff --git a/puppet/modules/site_couchdb/manifests/init.pp b/puppet/modules/site_couchdb/manifests/init.pp
index 5d77c994..684d3ab7 100644
--- a/puppet/modules/site_couchdb/manifests/init.pp
+++ b/puppet/modules/site_couchdb/manifests/init.pp
@@ -16,6 +16,8 @@ class site_couchdb {
$couchdb_soledad_pw = $couchdb_soledad['password']
$couchdb_soledad_salt = $couchdb_soledad['salt']
+ $couchdb_backup = $couchdb_config['backup']
+
$bigcouch_config = $couchdb_config['bigcouch']
$bigcouch_cookie = $bigcouch_config['cookie']
@@ -96,4 +98,27 @@ class site_couchdb {
include site_shorewall::couchdb
include site_shorewall::couchdb::bigcouch
+
+ # /etc/couchdb/couchdb.netrc is deployed by the couchdb module
+ # needed for couchdb_scripts (backup) and makes life easier
+ # for the admin (i.e. using curl/wget without passing credentials)
+
+ file { '/root/.netrc':
+ ensure => link,
+ target => '/etc/couchdb/couchdb.netrc'
+ }
+
+ file { '/srv/leap/couchdb':
+ ensure => directory
+ }
+
+ vcsrepo { '/srv/leap/couchdb/scripts':
+ ensure => present,
+ provider => git,
+ source => 'https://leap.se/git/couchdb_scripts',
+ revision => 'origin/master',
+ require => File['/srv/leap/couchdb']
+ }
+
+ if $couchdb_backup { include site_couchdb::backup }
}