diff options
author | mh <mh@immerda.ch> | 2009-12-06 23:02:23 +0100 |
---|---|---|
committer | mh <mh@immerda.ch> | 2009-12-06 23:02:23 +0100 |
commit | 0d1a1fdb690cd88496776f1571416e468a51ce71 (patch) | |
tree | 9aa1baa428492f67afcf4a02d018fc3d466f961e /manifests | |
parent | c2b7e2af0438975e8b8b4c8d2532c383a8125e3f (diff) |
initial release of the new dovecot module
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/base.pp | 34 | ||||
-rw-r--r-- | manifests/deliver.pp | 9 | ||||
-rw-r--r-- | manifests/expire.pp | 26 | ||||
-rw-r--r-- | manifests/expire/sqlite.pp | 20 | ||||
-rw-r--r-- | manifests/init.pp | 6 | ||||
-rw-r--r-- | manifests/managesieve.pp | 7 | ||||
-rw-r--r-- | manifests/quota.pp | 9 | ||||
-rw-r--r-- | manifests/sieve.pp | 42 | ||||
-rw-r--r-- | manifests/sql.pp | 19 | ||||
-rw-r--r-- | manifests/sql/mysql.pp | 6 | ||||
-rw-r--r-- | manifests/sql/pgsql.pp | 6 |
11 files changed, 180 insertions, 4 deletions
diff --git a/manifests/base.pp b/manifests/base.pp new file mode 100644 index 0000000..ebfe602 --- /dev/null +++ b/manifests/base.pp @@ -0,0 +1,34 @@ +class dovecot::base { + package{'dovecot': + ensure => installed, + } + + file{'/etc/dovecot.conf': + source => [ "puppet://$server/modules/site-dovecot/config/${fqdn}/dovecot.conf", + "puppet://$server/modules/site-dovecot/config/${dovecot_type}/dovecot.conf", + "puppet://$server/modules/site-dovecot/config/dovecot.conf", + "puppet://$server/modules/site/config/${operatingsystem}/dovecot.conf", + "puppet://$server/modules/site/config/dovecot.conf" ], + require => Package['dovecot'], + notify => Service['dovecot'], + owner => root, group => mail, mode => 0640; + } + + file{'/var/log/dovecot': + ensure => directory, + require => Package['dovecot'], + before => Service['dovecot'], + owner => dovecot, group => 12, mode => 0660, + } + file{ [ '/var/log/dovecot/error.log', + '/var/log/dovecot/infos.log' ]: + require => Package['dovecot'], + before => Service['dovecot'], + owner => root, group => 12, mode => 0660; + } + + service{'dovecot': + ensure => running, + enable => true, + } +} diff --git a/manifests/deliver.pp b/manifests/deliver.pp new file mode 100644 index 0000000..c09854a --- /dev/null +++ b/manifests/deliver.pp @@ -0,0 +1,9 @@ +class dovecot::deliver { + include ::dovecot + file{ [ 'var/log/dovecot/deliver.log', + 'var/log/dovecot/deliver-error.log' ]: + require => Package['dovecot'], + before => Service['dovecot'], + owner => root, group => 12, mode => 0660; + } +} diff --git a/manifests/expire.pp b/manifests/expire.pp new file mode 100644 index 0000000..8cdf17f --- /dev/null +++ b/manifests/expire.pp @@ -0,0 +1,26 @@ +class dovecot::expire { + include ::dovecot + file{'/etc/dovecot-expire.conf': + source => [ "puppet://$server/modules/site-dovecot/expire/${fqdn}/dovecot-expire.conf", + "puppet://$server/modules/site-dovecot/expire/dovecot-expire.conf", + "puppet://$server/modules/site/expire/${operatingsystem}/dovecot-expire.conf", + "puppet://$server/modules/site/expire/dovecot-expire.conf" ], + require => Package['dovecot'], + notify => Service['dovecot'], + owner => root, group => 0, mode => 0600; + } + + file{'/etc/cron.daily/dovecot-expire': + content => "dovecot --exec-mail ext /usr/libexec/dovecot/expire-tool.sh\n", + owner => root, group => 0, mode => 0755; + } + + file{'/usr/libexec/dovecot/expire-tool.sh': + source => "puppet://$server/modules/site/expire/expire-tool.sh", + owner => root, group => 0, mode => 0700; + } + + case $dovecot_expire_type { + default: { include ::dovecot::expire::sqlite } + } +} diff --git a/manifests/expire/sqlite.pp b/manifests/expire/sqlite.pp new file mode 100644 index 0000000..2de7291 --- /dev/null +++ b/manifests/expire/sqlite.pp @@ -0,0 +1,20 @@ +class dovecot::expire::sqlite { + include ::sqlite + file{'/var/lib/dovecot/expire.db': + ensure => file, + replace => false, + require => Package['sqlite'], + owner => root, group => 0, mode => 0600; + } + file{'/var/lib/dovecot/expire.sql': + source => "puppet://$server/modules/dovecot/expire/expire.sqlite.sql", + require => File['/var/lib/dovecot/expire.db'], + notify => Exec['create_expire_db'], + owner => root, group => 0, mode => 0600; + } + + exec{'create_expire_db': + command => 'cat /var/lib/dovecot/expire.sql | sqlite3 /var/lib/dovecot/expire.db', + refreshonly => true, + } +} diff --git a/manifests/init.pp b/manifests/init.pp index 1141a6e..1e20374 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -2,9 +2,7 @@ # Copyright (C) 2009 admin@immerda.ch # -# we take rpms from -# - http://atrpms.net/dist/el5/dovecot/ -# - http://atrpms.net/dist/el5/dovecot-sieve/ +# we take rpms from fedora class dovecot { - + include dovecot::base } diff --git a/manifests/managesieve.pp b/manifests/managesieve.pp new file mode 100644 index 0000000..ec38cba --- /dev/null +++ b/manifests/managesieve.pp @@ -0,0 +1,7 @@ +class dovecot::managesieve { + include dovecot::sieve + package{'dovecot-managesieve': + ensure => installed, + before => Service['dovecot'], + } +} diff --git a/manifests/quota.pp b/manifests/quota.pp new file mode 100644 index 0000000..1ced2f2 --- /dev/null +++ b/manifests/quota.pp @@ -0,0 +1,9 @@ +class dovecot::quota { + file{'/usr/libexec/dovecot/quota-warning.sh': + source => [ "puppet://$server/modules/site-dovecot/quota/quota-warning.sh", + "puppet://$server/modules/dovecot/quota/quota-warning.sh" ], + require => Package['dovecot'], + before => Service['dovecot'], + owner => root, group => 0, mode => 0755; + } +} diff --git a/manifests/sieve.pp b/manifests/sieve.pp new file mode 100644 index 0000000..4b5068d --- /dev/null +++ b/manifests/sieve.pp @@ -0,0 +1,42 @@ +class dovecot::sieve { + include ::dovecot + package{'dovecot-sieve': + ensure => installed, + before => Service['dovecot'], + } + + file{'/var/lib/dovecot-sieve': + ensure => directory, + owner => root, group => 0, mode => 0644; + } + file{'/var/lib/dovecot-sieve/global': + source => [ "puppet://$server/modules/site-dovecot/sieve/${fqdn}/global/", + "puppet://$server/modules/site-dovecot/sieve/global/", + "puppet://$server/modules/site/sieve/${operatingsystem}/global/", + "puppet://$server/modules/site/sieve/global/", + "puppet://$server/modules/common/empty/" ], + ensure => directory, + recurse => true, + purge => true, + force => true, + notify => Exec['compile_global_sieve'], + owner => root, group => root, mode => 0644; + } + file{'/var/lib/dovecot-sieve/default.sieve': + source => [ "puppet://$server/modules/site-dovecot/sieve/${fqdn}/default.sieve", + "puppet://$server/modules/site-dovecot/sieve/default.sieve", + "puppet://$server/modules/site/sieve/${operatingsystem}/default.sieve", + "puppet://$server/modules/site/sieve/default.sieve" ], + notify => Exec['compile_default_sieve'], + owner => root, group => root, mode => 0644; + } + + exec{'compile_default_sieve': + command => 'sievec /var/lib/dovecot-sieve/default.sieve', + refreshonly => true, + } + exec{'compile_global_sieve': + command => 'sievec /var/lib/dovecot-sieve/global/', + refreshonly => true, + } +} diff --git a/manifests/sql.pp b/manifests/sql.pp new file mode 100644 index 0000000..779bd3a --- /dev/null +++ b/manifests/sql.pp @@ -0,0 +1,19 @@ +class dovecot::sql { + include ::dovecot + file{'/etc/dovecot-sql.conf': + source => [ "puppet://$server/modules/site-dovecot/sql/${fqdn}/dovecot-sql.conf", + "puppet://$server/modules/site-dovecot/sql/${dovecot_type}/dovecot-sql.conf", + "puppet://$server/modules/site-dovecot/sql/dovecot-sql.conf", + "puppet://$server/modules/site/sql/${operatingsystem}/dovecot-sql.conf", + "puppet://$server/modules/site/sql/dovecot-sql.conf" ], + require => Package['dovecot'], + notify => Service['dovecot'], + owner => root, group => 0, mode => 0600; + } + + if ($dovecot_sql_type=='mysql'){ + include ::dovecot::sql::mysql + } else { + include ::dovecot::sql::pgsql + } +} diff --git a/manifests/sql/mysql.pp b/manifests/sql/mysql.pp new file mode 100644 index 0000000..378ed41 --- /dev/null +++ b/manifests/sql/mysql.pp @@ -0,0 +1,6 @@ +class dovecot::sql::mysql { + package{'dovecot-mysql': + ensure => installed, + before => File['/etc/dovecot-sql.conf'], + } +} diff --git a/manifests/sql/pgsql.pp b/manifests/sql/pgsql.pp new file mode 100644 index 0000000..530e878 --- /dev/null +++ b/manifests/sql/pgsql.pp @@ -0,0 +1,6 @@ +class dovecot::sql::pgsql { + package{'dovecot-pgsql': + ensure => installed, + before => File['/etc/dovecot-sql.conf'], + } +} |