class mail::virtual::web( $postfixadmin_setup_hash = hiera('mail::virtual::web::postfixadmin_setup_hash', $mail::virtual::web::params::postfixadmin_setup_hash), $roundcube_des_key = hiera('mail::virtual::web::roundcube_des_key', $mail::virtual::web::params::roundcube_des_key), $roundcube_logo = hiera('mail::virtual::web::roundcube_logo', $mail::virtual::web::params::roundcube_logo), $roundcube_login_info = hiera('mail::virtual::web::roundcube_login_info', $mail::virtual::web::params::roundcube_login_info) ) { # Class configuration if $::lsbdistcodename != 'lenny' { case $roundcube_des_key { '': { fail("You need to define mail::virtual::web::roundcube_des_key config") } } } case $postfixadmin_setup_hash { '': { warning("You need to define mail::virtual::web::postfixadmin_setup_hash config") $setup_hash = 'changeme' } } include php::imap include websites::setup apache::site { "postfixadmin": docroot => "${apache::sites_folder}/postfixadmin/site", use => [ "Site postfixadmin" ], mpm => false, } apache::site { "mail": docroot => $::lsbdistcodename ? { 'lenny' => "/usr/share/squirrelmail", default => "/var/lib/roundcube", }, source => true, mpm => false, } database::instance { "mail": password => hiera('mail::virtual::web::database::password', ''), } file { "${apache::sites_folder}/postfixadmin/site/config.inc.php": ensure => present, owner => www-data, group => root, mode => 0640, content => template('mail/virtual/postfixadmin/config.inc.php.erb'), require => File["${apache::sites_folder}/postfixadmin/site"], } file { "/etc/roundcube/main.inc.php": ensure => $::lsbdistcodename ? { 'lenny' => absent, default => present, }, owner => root, group => www-data, mode => 0640, content => template('mail/virtual/roundcube/main.inc.php.erb'), require => Package['roundcube'], } file { "/var/lib/roundcube/plugins/login_info": ensure => $::lsbdistcodename ? { 'lenny' => absent, default => directory, }, recurse => true, owner => root, group => root, mode => 0644, source => "puppet:///modules/mail/roundcube/plugins/login_info", require => Package['roundcube'], } }