diff --git a/manifests/init.pp b/manifests/init.pp index 244a59c..3181483 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -2,31 +2,29 @@ class exim( $mailman_domains = [], $sysadmin = [] ) { - package { 'exim4-base': + + include exim::params + + package { $::exim::params::package: ensure => present, } - package { 'exim4-config': - ensure => present, + if ($::operatingsystem == 'Redhat') { + service { 'postfix': + ensure => stopped + } } - package { 'exim4-daemon-light': - ensure => present, - require => [ - Package[exim4-base], - Package[exim4-config] - ], - } - - service { 'exim4': + service { 'exim': ensure => running, + name => $::exim::params::service_name, hasrestart => true, - subscribe => File['/etc/exim4/exim4.conf'], + subscribe => File[$::exim::params::config_file], } - file { '/etc/exim4/exim4.conf': + file { $::exim::params::config_file: ensure => present, - content => template('exim/exim4.conf.erb'), + content => template("${module_name}/exim4.conf.erb"), group => 'root', mode => '0444', owner => 'root', @@ -35,7 +33,7 @@ class exim( file { '/etc/aliases': ensure => present, - content => template('exim/aliases.erb'), + content => template("${module_name}/aliases.erb"), group => 'root', mode => '0444', owner => 'root', diff --git a/manifests/params.pp b/manifests/params.pp new file mode 100644 index 0000000..13adb1d --- /dev/null +++ b/manifests/params.pp @@ -0,0 +1,23 @@ +# Class: exim::params +# +# This class holds parameters that need to be +# accessed by other classes. +class exim::params { + case $::osfamily { + 'Redhat': { + $package = 'exim' + $service_name = 'exim' + $config_file = '/etc/exim/exim.conf' + $conf_dir = '/etc/exim/' + } + 'Debian', 'Ubuntu': { + $package = 'exim4-daemon-light' + $service_name = 'exim4' + $config_file = '/etc/exim4/exim4.conf' + $conf_dir = '/etc/exim4' + } + default: { + fail("Unsupported osfamily: ${::osfamily} The 'exim' module only supports osfamily Ubuntu or Redhat(slaves only).") + } + } +} diff --git a/templates/exim4.conf.erb b/templates/exim4.conf.erb index 369d8df..6d9965f 100644 --- a/templates/exim4.conf.erb +++ b/templates/exim4.conf.erb @@ -37,7 +37,8 @@ # # ########### IMPORTANT ########## IMPORTANT ########### IMPORTANT ########### -CONFDIR = /etc/exim4 +CONFDIR = <%= scope.lookupvar('exim::params::conf_dir') %> + ###################################################################### # MAIN CONFIGURATION SETTINGS #