summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
m---------puppet/modules/backupninja0
-rw-r--r--puppet/modules/site_couchdb/manifests/backup.pp12
-rw-r--r--puppet/modules/site_couchdb/manifests/init.pp25
4 files changed, 40 insertions, 0 deletions
diff --git a/.gitmodules b/.gitmodules
index 0ab46323..0b339593 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -82,3 +82,6 @@
[submodule "puppet/modules/rsyslog"]
path = puppet/modules/rsyslog
url = https://leap.se/git/puppet_rsyslog
+[submodule "puppet/modules/backupninja"]
+ path = puppet/modules/backupninja
+ url = https://leap.se/git/puppet_backupninja
diff --git a/puppet/modules/backupninja b/puppet/modules/backupninja
new file mode 160000
+Subproject daeb1a1f112a4dbf6b39565f0dea461e46a6468
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 }
}