# This module is distributed under the GNU Affero General Public License: # # Exim module for puppet # Copyright (C) 2009 Sarava Group # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . class exim( $eximconfig_configtype = 'internet', $other_hostnames = $::fqdn, $local_interfaces = '127.0.0.1', $readhost = '', $relay_domains = '', $minimaldns = 'false', $relay_nets = '', $smarthost = '', $cfilemode = '644', $use_split_config = 'true', $hide_mailname = '', $mailname_in_oh = 'true', $localdelivery = 'mail_spool', $root_mail_recipient = 'root', $aliases = 'template', ) { package { "exim4": ensure => present, } service { "exim4": ensure => running, require => Package["exim4"], } file { "/etc/aliases": source => $aliases ? { 'source' => [ "puppet:///modules/site_mail/${::domain}/aliases", "puppet:///modules/site_mail/${::hostname}/aliases", "puppet:///modules/site_mail/aliases", "puppet:///modules/mail/aliases", "puppet:///modules/exim/aliases" ], default => undef, }, content => $aliases ? { 'template' => template('exim/aliases.erb'), default => undef, }, owner => "root", group => "root", mode => '0644', ensure => present, } file { "/etc/exim4/update-exim4.conf.conf": owner => "root", group => "root", mode => '0644', ensure => present, content => template('exim/update-exim4.conf.conf.erb'), } file { "/etc/mailname": owner => "root", group => "root", mode => '0644', ensure => present, content => "$fqdn\n", } # Rebuild alias database exec { "newaliases": path => ["/usr/bin", "/usr/sbin"], subscribe => File["/etc/aliases"], refreshonly => true, require => Service["exim4"], } # Rebuild exim config exec { "update-exim4.conf": command => "/usr/sbin/update-exim4.conf", returns => "0", subscribe => File["/etc/exim4/update-exim4.conf.conf", "/etc/mailname"], refreshonly => true, notify => Service["exim4"], } }