class dovecot::base { file { '/etc/dovecot.conf': source => [ "puppet:///modules/site-dovecot/config/${fqdn}/dovecot.conf", "puppet:///modules/site-dovecot/config/${dovecot::type}/dovecot.conf", "puppet:///modules/site-dovecot/config/dovecot.conf", "puppet:///modules/dovecot/config/${operatingsystem}/dovecot.conf", "puppet:///modules/dovecot/config/dovecot.conf" ], require => Package['dovecot'], notify => Service['dovecot'], owner => root, group => mail, mode => 0640; } file { 'config_dir': path => '/etc/dovecot/conf.d', ensure => directory, require => Package['dovecot'], owner => dovecot, group => 0, mode => 0755; } file { '/var/log/dovecot': ensure => directory, require => Package['dovecot'], before => Service['dovecot'], owner => dovecot, group => dovecot, mode => 0660; [ '/var/log/dovecot/error.log', '/var/log/dovecot/dovecot.log' ]: require => Package['dovecot'], before => Service['dovecot'], owner => root, group => dovecot, mode => 0660; } package { 'dovecot': alias => 'dovecot', ensure => installed, } include dovecot::logrotate service { 'dovecot': ensure => running, enable => true, } }