Defined Type: postfix::transport
- Defined in:
- manifests/transport.pp
Overview
Definition: postfix::transport
Manages content of the /etc/postfix/transport map.
Parameters
- name
-
name of address postfix will lookup. See transport(5).
-
- destination
-
where the emails will be delivered to. See transport(5).
-
- ensure
-
present/absent, defaults to present.
-
- nexthop
-
A string to define where and how to deliver the mail. See transport(5).
-
Requires
-
augeas
Examples
node 'toto.example.com' {
include postfix
postfix::hash { '/etc/postfix/transport':
ensure => present,
}
postfix::config { 'transport_maps':
value => 'hash:/etc/postfix/transport',
}
postfix::transport { 'mailman.example.com':
ensure => present,
destination => 'mailman',
}
}
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 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'manifests/transport.pp', line 37
define postfix::transport (
Optional[String] $destination = undef,
Optional[String] $nexthop=undef,
Stdlib::Absolutepath $file='/etc/postfix/transport',
Enum['present', 'absent'] $ensure='present'
) {
include ::postfix::augeas
case $ensure {
'present': {
if ($destination) {
$change_destination = "set pattern[. = '${name}']/transport '${destination}'"
} else {
$change_destination = "clear pattern[. = '${name}']/transport"
}
if ($nexthop) {
$change_nexthop = "set pattern[. = '${name}']/nexthop '${nexthop}'"
} else {
$change_nexthop = "clear pattern[. = '${name}']/nexthop"
}
$changes = [
"set pattern[. = '${name}'] '${name}'",
$change_destination,
$change_nexthop,
]
}
'absent': {
$changes = "rm pattern[. = '${name}']"
}
default: {
fail "\$ensure must be either 'present' or 'absent', got '${ensure}'"
}
}
augeas {"Postfix transport - ${name}":
lens => 'Postfix_Transport.lns',
incl => $file,
changes => $changes,
require => Augeas::Lens['postfix_transport'],
}
if defined(Package['postfix']) {
Package['postfix'] -> Postfix::Transport[$title]
}
if defined(Postfix::Hash['/etc/postfix/transport']) {
Postfix::Transport[$title] ~> Postfix::Hash['/etc/postfix/transport']
}
}
|