# 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 { package { "exim4": ensure => present, } service { "exim4": ensure => running, require => Package["exim4"], } file { "/etc/aliases": source => [ "puppet:///modules/site-mail/$domain/aliases", "puppet:///modules/site-mail/aliases" ], 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"], } } class exim::disabled inherits exim { Service['exim4'] { ensure => stopped, } } # See http://www.exim.org/exim-html-current/doc/html/spec_html/ch39.html class exim::tls inherits exim { file { "/etc/exim4/conf.d/router/195_exim4_config_tls_verify": ensure => present, owner => root, group => root, mode => 0644, source => "puppet:///modules/exim/195_exim4_config_tls_verify", notify => Service["exim4"], } file { "/etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_tls_verify": ensure => present, owner => root, group => root, mode => 0644, source => "puppet:///modules/exim/30_exim4-config_remote_smtp_tls_verify", notify => Service["exim4"], } file { '/etc/exim4/conf.d/main/00_local_settings': ensure => $exim_tls_verify_relay_to_domains ? { '' => absent, default => present, }, owner => root, group => root, mode => 0644, content => "domainlist tls_verify_relay_to_domains = $exim_tls_verify_relay_to_domains\n", notify => Service["exim4"], } }