diff options
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/classes/couchdb-backup.pp | 38 | ||||
-rw-r--r-- | manifests/classes/couchdb-base.pp | 13 | ||||
-rw-r--r-- | manifests/classes/couchdb-debian.pp | 1 | ||||
-rw-r--r-- | manifests/classes/couchdb-params.pp | 18 | ||||
-rw-r--r-- | manifests/init.pp | 12 |
5 files changed, 82 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, + } + +} diff --git a/manifests/init.pp b/manifests/init.pp new file mode 100644 index 0000000..5100da0 --- /dev/null +++ b/manifests/init.pp @@ -0,0 +1,12 @@ +import "classes/*.pp" + +class couchdb { + case $operatingsystem { + Debian: { + case $lsbdistcodename { + lenny : { include couchdb::debian } + default: { fail "couchdb not available for ${operatingsystem}/${lsbdistcodename}"} + } + } + } +} |