Defined Type: postfix::map
- Defined in:
- manifests/map.pp
Overview
Definition: postfix::map
Creates postfix “map” files. It will create “$name”, and then build “$name.db” using the “postmap” command. The map file can then be referred to using postfix::config.
Parameters
- name
-
the name of the map file.
-
- ensure
-
present/absent, defaults to present.
-
- source
-
file source.
-
- type
-
type of the postfix map (valid values are cidr, pcre, hash…)
-
- path
-
path of the created file. By default it is placed in the postfix directory.
-
- mode
-
mode of the created file. By default it is ‘0640’.
-
Requires
Examples
postfix::map { '/etc/postfix/virtual':
ensure => present,
}
postfix::config { 'virtual_alias_maps':
value => 'hash:/etc/postfix/virtual',
}
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 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 90 91 92 93 94 95 96 97 |
# File 'manifests/map.pp', line 30
define postfix::map (
Enum['present', 'absent'] $ensure = 'present',
Variant[Array[String], String, Undef] $source = undef,
Optional[Variant[Sensitive[String],String]] $content = undef,
String $type = 'hash',
Optional[Stdlib::Absolutepath] $path = undef,
String[4,4] $mode = '0640'
) {
include postfix
include ::postfix::params
$_path = pick($path, "${postfix::confdir}/${name}")
if (!defined(Class['postfix'])) {
fail 'You must define class postfix before using postfix::config!'
}
if $source and $content {
fail 'You must provide either \'source\' or \'content\', not both'
}
# CIDR and PCRE maps need a postfix reload, but not a postmap
if $type =~ /^(cidr|pcre)$/ {
$manage_notify = Service['postfix']
} else {
if $ensure == 'present' {
$manage_notify = Exec["generate ${name}.db"]
} else {
$manage_notify = undef
}
}
file { "postfix map ${name}":
ensure => $ensure,
path => $_path,
source => $source,
content => $content,
owner => 'root',
group => 'postfix',
mode => $mode,
require => Package['postfix'],
notify => $manage_notify,
}
if $type !~ /^(cidr|pcre)$/ {
file {"postfix map ${name}.db":
ensure => $ensure,
path => "${_path}.db",
owner => 'root',
group => 'postfix',
mode => $mode,
require => File["postfix map ${name}"],
notify => $manage_notify,
}
}
$generate_cmd = $ensure ? {
'absent' => "rm ${_path}.db",
'present' => "postmap ${_path}",
}
exec {"generate ${name}.db":
command => $generate_cmd,
path => $::path,
#creates => "${name}.db", # this prevents postmap from being run !
refreshonly => true,
}
}
|