summaryrefslogtreecommitdiff
path: root/manifests/virtual/database.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/virtual/database.pp')
-rw-r--r--manifests/virtual/database.pp119
1 files changed, 119 insertions, 0 deletions
diff --git a/manifests/virtual/database.pp b/manifests/virtual/database.pp
new file mode 100644
index 0000000..32259a4
--- /dev/null
+++ b/manifests/virtual/database.pp
@@ -0,0 +1,119 @@
+class mail::virtual::database {
+ # Class configuration
+ case $database_password {
+ '': { fail("You need to define database_password host config") }
+ }
+
+ #
+ # Database configuration
+ #
+ database::instance { "${mail::virtual::database_name}":
+ password => "${mail::virtual::database_password}",
+ }
+
+ #
+ # Postfix configuration
+ #
+ postfix::config {
+ "virtual_transport": value => 'dovecot';
+ "dovecot_destination_recipient_limit": value => '1', nonstandard => true;
+ }
+
+ postfix::config { "virtual_mailbox_domains":
+ value => 'proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf',
+ require => File['/etc/postfix/sql/mysql_virtual_domains_maps.cf'],
+ }
+
+ postfix::config { "virtual_alias_maps":
+ value => 'hash:/etc/postfix/virtual, regexp:/etc/postfix/virtual_regexp, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf',
+ require => File['/etc/postfix/sql/mysql_virtual_alias_maps.cf',
+ '/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf',
+ '/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf' ],
+ }
+
+ postfix::config { "virtual_mailbox_maps":
+ value => 'proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf',
+ require => File['/etc/postfix/sql/mysql_virtual_mailbox_maps.cf',
+ '/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf' ],
+ }
+
+ #
+ # Map files
+ #
+ file { "/etc/postfix/sql":
+ ensure => directory,
+ owner => postfix,
+ group => root,
+ mode => 0755,
+ }
+
+ file { "/etc/virtual/database/mysql_virtual_domains_maps.cf":
+ ensure => present,
+ owner => postfix,
+ mode => 0600,
+ content => template('mail/virtual/database/mysql_virtual_domains_maps.cf.erb'),
+ require => File['/etc/virtual/database'],
+ }
+
+ file { "/etc/virtual/database/mysql_virtual_alias_maps.cf":
+ ensure => present,
+ owner => postfix,
+ mode => 0600,
+ content => template('mail/virtual/database/mysql_virtual_alias_maps.cf.erb'),
+ require => File['/etc/virtual/database'],
+ }
+
+ file { "/etc/virtual/database/mysql_virtual_alias_domain_maps.cf":
+ ensure => present,
+ owner => postfix,
+ mode => 0600,
+ content => template('mail/virtual/database/mysql_virtual_alias_domain_maps.cf.erb'),
+ require => File['/etc/virtual/database'],
+ }
+
+ file { "/etc/virtual/database/mysql_virtual_alias_domain_catchall_maps.cf":
+ ensure => present,
+ owner => postfix,
+ mode => 0600,
+ content => template('mail/virtual/database/mysql_virtual_alias_domain_catchall_maps.cf.erb'),
+ require => File['/etc/virtual/database'],
+ }
+
+ file { "/etc/virtual/database/mysql_virtual_mailbox_maps.cf":
+ ensure => present,
+ owner => postfix,
+ mode => 0600,
+ content => template('mail/virtual/database/mysql_virtual_mailbox_maps.cf.erb'),
+ require => File['/etc/virtual/database'],
+ }
+
+ file { "/etc/virtual/database/mysql_virtual_alias_domain_mailbox_maps.cf":
+ ensure => present,
+ owner => postfix,
+ mode => 0600,
+ content => template('mail/virtual/database/mysql_virtual_alias_domain_mailbox_maps.cf.erb'),
+ require => File['/etc/virtual/database'],
+ }
+
+ #
+ # Additional for quota support
+ #
+ #postfix::config { "virtual_mailbox_limit_maps":
+ # value => 'mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf',
+ # require => File['/etc/postfix/mysql_virtual_mailbox_limit_maps.cf'],
+ #}
+ #
+ #postfix::config { "virtual_create_maildirsize": value => 'yes' }
+ #postfix::config { "virtual_mailbox_extended ": value => 'yes' }
+ #postfix::config { "virtual_mailbox_limit_override": value => 'yes' }
+ #postfix::config { "virtual_maildir_limit_message": value => 'The user's maildir has overdrawn his quota, try again later.' }
+ #postfix::config { "virtual_overquota_bounce": value => 'yes' }
+ #
+ #file { "/etc/postfix/mysql_virtual_mailbox_limit_maps.cf":
+ # ensure => present,
+ # owner => postfix,
+ # mode => 0600,
+ # content => template('mail/virtual/database/mysql_virtual_mailbox_limit_maps.cf.erb'),
+ # require => File['/etc/virtual/database'],
+ #}
+}