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], } 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"], } case $operatingsystem { /Debian|Ubunu/: { # note: python-couchdb >= 0.8 required, which is found in debian wheezy. package { ["python-couchdb", "python-simplejson"]: ensure => present, before => File["/usr/local/sbin/couchdb-backup.py"], } } /RedHat|Centos/: { exec {'install python-couchdb using easy_install': command => 'easy_install http://pypi.python.org/packages/2.6/C/CouchDB/CouchDB-0.8-py2.6.egg', creates => '/usr/lib/python2.6/site-packages/CouchDB-0.8-py2.6.egg', } } } }