summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2009-12-06 23:02:23 +0100
committermh <mh@immerda.ch>2009-12-06 23:02:23 +0100
commit0d1a1fdb690cd88496776f1571416e468a51ce71 (patch)
tree9aa1baa428492f67afcf4a02d018fc3d466f961e /manifests
parentc2b7e2af0438975e8b8b4c8d2532c383a8125e3f (diff)
initial release of the new dovecot module
Diffstat (limited to 'manifests')
-rw-r--r--manifests/base.pp34
-rw-r--r--manifests/deliver.pp9
-rw-r--r--manifests/expire.pp26
-rw-r--r--manifests/expire/sqlite.pp20
-rw-r--r--manifests/init.pp6
-rw-r--r--manifests/managesieve.pp7
-rw-r--r--manifests/quota.pp9
-rw-r--r--manifests/sieve.pp42
-rw-r--r--manifests/sql.pp19
-rw-r--r--manifests/sql/mysql.pp6
-rw-r--r--manifests/sql/pgsql.pp6
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'],
+ }
+}