From a399f4b49a812db8226d1b130e5984287723a9e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Pinson?= <raphael.pinson@camptocamp.com> Date: Mon, 20 May 2013 13:57:19 +0200 Subject: [PATCH] Split init.pp into packages/files/service and add parameters --- manifests/files.pp | 71 +++++++++++++++++++++++++++++++++++++++++++ manifests/packages.pp | 12 ++++++++ manifests/params.pp | 30 ++++++++++++++++++ manifests/service.pp | 8 +++++ 4 files changed, 121 insertions(+) create mode 100644 manifests/files.pp create mode 100644 manifests/packages.pp create mode 100644 manifests/params.pp create mode 100644 manifests/service.pp diff --git a/manifests/files.pp b/manifests/files.pp new file mode 100644 index 0000000..d745901 --- /dev/null +++ b/manifests/files.pp @@ -0,0 +1,71 @@ +class postfix::files { + include postfix::params + + file { '/etc/mailname': + ensure => present, + content => "${::fqdn}\n", + seltype => $postfix::params::seltype, + } + + # Aliases + file { '/etc/aliases': + ensure => present, + content => '# file managed by puppet\n', + replace => false, + seltype => $postfix::params::seltype, + notify => Exec['newaliases'], + } + + # Aliases + exec { 'newaliases': + command => '/usr/bin/newaliases', + refreshonly => true, + subscribe => File['/etc/aliases'], + } + + # Config files + file { '/etc/postfix/master.cf': + ensure => present, + owner => 'root', + group => 'root', + mode => '0644', + content => template( + $postfix::params::master_os_template, + "${module_name}/master.cf.common.erb" + ), + seltype => $postfix::params::seltype, + } + + # Config files + file { '/etc/postfix/main.cf': + ensure => present, + owner => 'root', + group => 'root', + mode => '0644', + source => "puppet:///modules/${module_name}/main.cf", + replace => false, + seltype => $postfix::params::seltype, + } + + ::postfix::config { + 'myorigin': value => $postfix::myorigin; + 'alias_maps': value => 'hash:/etc/aliases'; + 'inet_interfaces': value => $postfix::inet_interfaces; + } + + case $::osfamily { + 'RedHat': { + ::postfix::config { + 'sendmail_path': value => '/usr/sbin/sendmail.postfix'; + 'newaliases_path': value => '/usr/bin/newaliases.postfix'; + 'mailq_path': value => '/usr/bin/mailq.postfix'; + } + } + default: {} + } + + mailalias {'root': + recipient => $postfix::root_mail_recipient, + notify => Exec['newaliases'], + } +} diff --git a/manifests/packages.pp b/manifests/packages.pp new file mode 100644 index 0000000..f641003 --- /dev/null +++ b/manifests/packages.pp @@ -0,0 +1,12 @@ +class postfix::packages { + include postfix::params + + package { 'postfix': + ensure => installed, + } + + package { 'mailx': + ensure => installed, + name => $postfix::params::mailx_package, + } +} diff --git a/manifests/params.pp b/manifests/params.pp new file mode 100644 index 0000000..4d00b60 --- /dev/null +++ b/manifests/params.pp @@ -0,0 +1,30 @@ +class postfix::params { + case $::osfamily { + 'RedHat': { + $seltype = $::lsbmajdistrelease { + '4' => 'etc_t', + '5','6' => 'postfix_etc_t', + default => undef, + } + + $mailx_package = 'mailx' + + $master_os_template = "${module_name}/master.cf.redhat.erb" + } + + 'Debian': { + $seltype = undef, + + $mailx_package = $::lsbdistcodename ? { + /sarge|etch|lenny|lucid/ => 'mailx', + default => 'bsd-mailx', + } + + $master_os_template = "${module_name}/master.cf.debian.erb" + } + + default: { + fail "Unsupported OS family '${::osfamily}'" + } + } +} diff --git a/manifests/service.pp b/manifests/service.pp new file mode 100644 index 0000000..c3f185d --- /dev/null +++ b/manifests/service.pp @@ -0,0 +1,8 @@ +class postfix::service { + service { 'postfix': + ensure => running, + enable => true, + hasstatus => true, + restart => '/etc/init.d/postfix reload', + } +} -- GitLab