diff options
Diffstat (limited to 'manifests/classes')
-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 |
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, + } + +} |