Puppet Class: postfix::aliases

Defined in:
manifests/aliases.pp

Overview

Class: postfix::aliases

Adds a postfix alias database

Parameters

source

Sets the value of source parameter for the postfix alias database

template

Sets the value of content parameter for the postfix alias database Defaults to ‘postfix/aliases.erb’ if $maps is set. Note: This option is alternative to the source one

maps

Sets the value of content parameter for the postfix alias database Note: This option is alternative to the source one

Usage:

class { ‘postfix::aliases’:

source => 'puppet:///modules/example42/postfix/aliases'

}

class { ‘postfix::aliases’:

template => 'example42/postfix/aliases.erb'

}

class { ‘postfix::aliases’:

maps => {
  'postmaster' => 'root',
  'nobody'     => 'root',
  'root'       => ['admin@example.org', 'admin@example.com'],
}

}

Parameters:

  • source (Any) (defaults to: params_lookup( 'source' ))
  • template (Any) (defaults to: params_lookup( 'template' ))
  • maps (Any) (defaults to: params_lookup( 'maps' ))


36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'manifests/aliases.pp', line 36

class postfix::aliases (
  $source   = params_lookup( 'source' ),
  $template = params_lookup( 'template' ),
  $maps     = params_lookup( 'maps' ),
) {
  include postfix

  $manage_file_source = $source ? {
    ''        => undef,
    default   => $source,
  }

  $manage_file_content = $template ? {
    ''        => $maps ? {
      ''      => undef,
      default => template('postfix/aliases.erb'),
      },
    default   => template($template),
  }

  file { 'postfix::aliases':
    ensure  => present,
    path    => $postfix::aliases_file,
    mode    => $postfix::config_file_mode,
    owner   => $postfix::config_file_owner,
    group   => $postfix::config_file_group,
    require => Package['postfix'],
    source  => $manage_file_source,
    content => $manage_file_content,
    replace => $postfix::manage_file_replace,
    audit   => $postfix::manage_audit,
  }

  exec { 'postalias':
    command     => "/usr/sbin/postalias '${postfix::aliases_file}'",
    require     => Package['postfix'],
    subscribe   => File['postfix::aliases'],
    refreshonly => true,
  }

}