diff options
author | mh <mh@immerda.ch> | 2012-02-16 16:51:56 +0100 |
---|---|---|
committer | mh <mh@immerda.ch> | 2012-02-16 16:51:56 +0100 |
commit | 77578b93bd98bf0bf9cf69e4fa8da75dcf9c236d (patch) | |
tree | c0ce83a00c9c6220b4bdddd1d5781e86b7ce2e48 /manifests/hash.pp | |
parent | 5108973b37903047b8b17fbe54313cb4b6ea114f (diff) | |
download | puppet-postfix-77578b93bd98bf0bf9cf69e4fa8da75dcf9c236d.tar.gz puppet-postfix-77578b93bd98bf0bf9cf69e4fa8da75dcf9c236d.tar.bz2 |
put classes and defines in the proper place
To take advantage of puppet's autoloading feature, which will be
mandatory sooner or later. We move all the files in their appropriate
place.
Diffstat (limited to 'manifests/hash.pp')
-rw-r--r-- | manifests/hash.pp | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/manifests/hash.pp b/manifests/hash.pp new file mode 100644 index 0000000..c8bb7c7 --- /dev/null +++ b/manifests/hash.pp @@ -0,0 +1,87 @@ +/* +== Definition: postfix::hash + +Creates postfix hashed "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. + +Requires: +- Class["postfix"] + +Example usage: + + node "toto.example.com" { + + include postfix + + postfix::hash { "/etc/postfix/virtual": + ensure => present, + } + postfix::config { "virtual_alias_maps": + value => "hash:/etc/postfix/virtual" + } + } + +*/ +define postfix::hash ($ensure="present", $source = false) { + + # selinux labels differ from one distribution to another + case $operatingsystem { + + RedHat, CentOS: { + case $lsbmajdistrelease { + "4": { $postfix_seltype = "etc_t" } + "5": { $postfix_seltype = "postfix_etc_t" } + default: { $postfix_seltype = undef } + } + } + + default: { + $postfix_seltype = undef + } + } + + case $source { + false: { + file {"${name}": + ensure => $ensure, + mode => 600, + owner => root, + group => root, + seltype => $postfix_seltype, + require => Package["postfix"], + } + } + default: { + file {"${name}": + ensure => $ensure, + mode => 600, + owner => root, + group => root, + source => $source, + seltype => $postfix_seltype, + require => Package["postfix"], + } + } + } + + file {"${name}.db": + ensure => $ensure, + mode => 600, + require => [File["${name}"], Exec["generate ${name}.db"]], + seltype => $postfix_seltype, + } + + exec {"generate ${name}.db": + command => "postmap ${name}", + #creates => "${name}.db", # this prevents postmap from being run ! + subscribe => File["${name}"], + refreshonly => true, + require => Package["postfix"], + } +} |