Update exim module to work on RHEL.

Parameterizes the exim module so that it can support multiple
distributions.

As part of this patch I also removed the explicit install
of exim4-base and exim4-config on Ubuntu. Just installing
exim4-daemon-light should be fine.

Change-Id: Ie09c5fa01509ebfadc92b8540f04181a2b13b667
Reviewed-on: https://review.openstack.org/23289
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
This commit is contained in:
Dan Prince 2013-03-01 11:19:51 -05:00 committed by Jenkins
parent 1a24fbbcc1
commit 0f25d1ed6a
3 changed files with 39 additions and 17 deletions

View File

@ -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',

23
manifests/params.pp Normal file
View File

@ -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).")
}
}
}

View File

@ -37,7 +37,8 @@
# #
########### IMPORTANT ########## IMPORTANT ########### IMPORTANT ###########
CONFDIR = /etc/exim4
CONFDIR = <%= scope.lookupvar('exim::params::conf_dir') %>
######################################################################
# MAIN CONFIGURATION SETTINGS #