Puppet Class: system::mail

Defined in:
manifests/mail.pp

Overview

Parameters:

  • config (Any) (defaults to: undef)
  • sys_schedule (Any) (defaults to: 'always')


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'manifests/mail.pp', line 1

class system::mail (
  $config   = undef,
  $sys_schedule = 'always',
) {
  $defaults = {
    schedule => $sys_schedule,
  }
  if $config {
    $aliases   = $config['aliases']
    $relayhost = $config['relayhost']
    $type      = $config['type']
  }
  else {
    $hiera_config = hiera_hash('system::mail', undef)
    if $hiera_config {
      $aliases   = $hiera_config['aliases']
      $relayhost = $hiera_config['relayhost']
      $type      = $hiera_config['hiera_config']
    }
  }
  if $aliases {
    create_resources(mailalias, $aliases, $defaults)
  }
  if $relayhost {
    case $type {
      undef, 'postfix': {
        augeas { 'system-mail-postfix-relayhost':
          context  => '/files/etc/postfix/main.cf',
          changes  => [ "set relayhost ${relayhost}" ],
          notify   => Service['postfix'],
          schedule => $sys_schedule,
        }
        service { 'postfix':
          ensure   => 'running',
          enable   => true,
          schedule => $sys_schedule,
        }
      }
      default: {
        fail("type ${type} not supported")
      }
    }
  }
}