diff --git a/modules/insidan/files/pg_dump.sh b/modules/insidan/files/pg_dump.sh new file mode 100644 index 0000000000000000000000000000000000000000..b4ad4d6a145f97fcb5ded146a2b2a1b09e92aca6 --- /dev/null +++ b/modules/insidan/files/pg_dump.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +FILE=/pg_dump/`date +"%Y%m%d%H%M"`_pg_dump.sql + +su postgres -c "pg_dump openproject -F p -f ${FILE}" +find /pg_dump -maxdepth 1 -mtime +14 -name "*_pg_dump.sql" -exec rm '{}' ';' diff --git a/modules/insidan/manifests/openproject.pp b/modules/insidan/manifests/openproject.pp index 43771cf5a2f6bbe371c24d41a331afbac84625e3..c441a34b71982351725964e940265d001cab4d2e 100644 --- a/modules/insidan/manifests/openproject.pp +++ b/modules/insidan/manifests/openproject.pp @@ -10,6 +10,8 @@ class insidan::openproject { }~> package { 'openproject' : ensure => installed, + # Here, someone MUST run `openproject configure`. At least until we + # configure it via puppet... } @@ -17,8 +19,27 @@ class insidan::openproject { ensure => installed, } - # Here, someone MUST run `openproject configure`. At least until we - # configure it via puppet... + file { '/pg_dump': + ensure => directory, + owner => 'postgres', + require => Package['postgresql'], + } + + file { '/opt/pg_dump.sh': + ensure => file, + mode => '755', + source => 'puppet:///modules/insidan/pg_dump.sh', + } + + cron { 'pg_dump openproject': + ensure => present, + command => '/opt/pg_dump.sh', + user => root, + minute => 45, + require => [ File['/opt/pg_dump.sh'], File['/pg_dump'] ] + } + +