summaryrefslogtreecommitdiff
path: root/manifests/classes
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/classes')
-rw-r--r--manifests/classes/couchdb-backup.pp38
-rw-r--r--manifests/classes/couchdb-base.pp13
-rw-r--r--manifests/classes/couchdb-debian.pp1
-rw-r--r--manifests/classes/couchdb-params.pp18
4 files changed, 70 insertions, 0 deletions
diff --git a/manifests/classes/couchdb-backup.pp b/manifests/classes/couchdb-backup.pp
new file mode 100644
index 0000000..6baea1d
--- /dev/null
+++ b/manifests/classes/couchdb-backup.pp
@@ -0,0 +1,38 @@
+class couchdb::backup {
+
+ include couchdb::params
+
+ # used in ERB templates
+ $bind_address = $couchdb::params::bind_address
+ $port = $couchdb::params::port
+ $backupdir = $couchdb::params::backupdir
+
+ file {$couchdb::params::backupdir:
+ ensure => directory,
+ mode => 755,
+ require => Package["couchdb"],
+ }
+
+ file { "/usr/local/sbin/couchdb-backup.py":
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => 755,
+ content => template("couchdb/couchdb-backup.py.erb"),
+ require => [ File[$couchdb::params::backupdir], Exec["install python-couchdb"] ],
+ }
+
+ cron { "couchdb-backup":
+ command => "/usr/local/sbin/couchdb-backup.py 2> /dev/null",
+ hour => 3,
+ minute => 0,
+ require => File["/usr/local/sbin/couchdb-backup.py"],
+ }
+
+ exec {"install python-couchdb":
+ command => "easy_install couchdb",
+ require => Package["python-setuptools"],
+ unless => "grep -q CouchDB-0.8-py2.5.egg /usr/lib/python2.5/site-packages/easy-install.pth"
+ }
+
+}
diff --git a/manifests/classes/couchdb-base.pp b/manifests/classes/couchdb-base.pp
new file mode 100644
index 0000000..9713f9b
--- /dev/null
+++ b/manifests/classes/couchdb-base.pp
@@ -0,0 +1,13 @@
+class couchdb::base {
+
+ package {["couchdb","libjs-jquery"]:
+ ensure => present,
+ }
+
+ service {"couchdb":
+ ensure => running,
+ hasstatus => true,
+ require => Package["couchdb"],
+ }
+
+}
diff --git a/manifests/classes/couchdb-debian.pp b/manifests/classes/couchdb-debian.pp
new file mode 100644
index 0000000..1b5090d
--- /dev/null
+++ b/manifests/classes/couchdb-debian.pp
@@ -0,0 +1 @@
+class couchdb::debian inherits couchdb::base {}
diff --git a/manifests/classes/couchdb-params.pp b/manifests/classes/couchdb-params.pp
new file mode 100644
index 0000000..df59ad0
--- /dev/null
+++ b/manifests/classes/couchdb-params.pp
@@ -0,0 +1,18 @@
+class couchdb::params {
+
+ $bind_address = $couchdb_bind_address ? {
+ "" => "127.0.0.1",
+ default => $couchdb_bind_address,
+ }
+
+ $port = $couchdb_port ? {
+ "" => "5984",
+ default => $couchdb_port,
+ }
+
+ $backupdir = $couchdb_backupdir ? {
+ "" => "/var/backups/couchdb",
+ default => $couchdb_backupdir,
+ }
+
+}