diff --git a/manifests/site.pp b/manifests/site.pp index 6fa684a..7b30f15 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -186,6 +186,14 @@ define askbot::site ( require => File[$askbot_site_root], } + file { "${askbot_site_root}/cron": + ensure => directory, + owner => 'root', + group => 'root', + mode => '0755', + require => File[$askbot_site_root], + } + # askbot setup_templates # copy template files from askbot's setup_templates into site config $setup_templates = [ '__init__.py', 'manage.py', 'urls.py', 'django.wsgi'] @@ -205,6 +213,48 @@ define askbot::site ( require => File["${askbot_site_root}/config"], } + # cron jobs + file { "${askbot_site_root}/cron/send_email_alerts.sh": + ensure => present, + owner => 'root', + group => 'root', + mode => '0644', + content => template('askbot/cron/send_email_alerts.sh.erb'), + require => File["${askbot_site_root}/cron"], + } + + file { "${askbot_site_root}/cron/clean_session.sh": + ensure => present, + owner => 'root', + group => 'root', + mode => '0644', + content => template('askbot/cron/clean_session.sh.erb'), + require => File["${askbot_site_root}/cron"], + } + + # 0 3 * * * + cron { "${slot_name}-send-email-alerts": + name => "${slot_name}-send-mail-alerts.cron", + command => "/bin/bash ${askbot_site_root}/cron/send_email_alerts.sh", + user => root, + minute => '0', + hour => '3', + require => [ + File["${askbot_site_root}/cron/send_email_alerts.sh"], + ] + } + + # 10 * * * * + cron { "${slot_name}-clean-session": + name => "${slot_name}-clean-session.cron", + command => "/bin/bash ${askbot_site_root}/cron/clean_session.sh", + user => root, + minute => '10', + require => [ + File["${askbot_site_root}/cron/clean_session.sh"], + ] + } + # post-configuration Exec { path => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'], diff --git a/templates/cron/clean_session.sh.erb b/templates/cron/clean_session.sh.erb new file mode 100644 index 0000000..d1c5bb0 --- /dev/null +++ b/templates/cron/clean_session.sh.erb @@ -0,0 +1,3 @@ +#!/bin/bash +cd <%= @askbot_site_root %>/config +python manage.py clean_session \ No newline at end of file diff --git a/templates/cron/send_email_alerts.sh.erb b/templates/cron/send_email_alerts.sh.erb new file mode 100644 index 0000000..2a96048 --- /dev/null +++ b/templates/cron/send_email_alerts.sh.erb @@ -0,0 +1,3 @@ +#!/bin/bash +cd <%= @askbot_site_root %>/config +python manage.py send_email_alerts \ No newline at end of file