summaryrefslogtreecommitdiff
path: root/puppet/modules/site_postfix/manifests/mx/static_aliases.pp
blob: 786d74c11066e802a2b667c6bc8c9183297b72e4 (plain)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#
# Defines static, hard coded aliases that are not in the database.
#

class site_postfix::mx::static_aliases {

  $mx = hiera('mx')
  $aliases = $mx['aliases']

  #
  # Predefined aliases.
  #
  # Defines which mail addresses shouldn't be available and where they should
  # fwd
  #
  # TODO: reconcile this with the node property webapp.forbidden_usernames
  #
  # NOTE: if you remove one of these, they will still appear in the
  # /etc/aliases file
  #
  postfix::mailalias {
    [ 'abuse', 'admin', 'arin-admin', 'administrator', 'bin', 'cron',
      'certmaster', 'domainadmin', 'games', 'ftp', 'hostmaster', 'lp',
      'maildrop', 'mysql', 'news', 'nobody', 'noc', 'postmaster', 'postgresql',
      'security', 'ssladmin', 'sys', 'usenet', 'uucp', 'webmaster', 'www',
      'www-data',
    ]:
      ensure    => present,
      recipient => 'root'
  }

  #
  # Custom aliases.
  #
  # This does not use the puppet mailalias resource because we want to be able
  # to guarantee the contents of the alias file. This is needed so if you
  # remove an alias from the node's config, it will get removed from the alias
  # file.
  #

  # both alias files must be listed under "alias_database", because once you
  # specify one, then `newaliases` no longer will default to updating
  # "/etc/aliases.db".
  postfix::config {
    'alias_database':
      value => "/etc/aliases, /etc/postfix/custom-aliases";
    'alias_maps':
      value => "hash:/etc/aliases, hash:/etc/postfix/custom-aliases";
  }

  file { '/etc/postfix/custom-aliases':
    content => template('site_postfix/custom-aliases.erb'),
    owner   => root,
    group   => root,
    mode    => 0600,
    notify  => Exec['newaliases']
  }
}