aboutsummaryrefslogtreecommitdiff
path: root/manifests/classes
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2011-03-05 04:45:37 +0100
committerintrigeri <intrigeri@boum.org>2011-03-05 04:45:37 +0100
commit0583cf4988aec251f129ac4c595e38ff5bb93132 (patch)
treee923af95d471b346a431827c10436eb5627227b5 /manifests/classes
parentcc8c37d5da948ac9a086a6e6ac6428d8231b7ff4 (diff)
downloadpuppet-postfix-0583cf4988aec251f129ac4c595e38ff5bb93132.tar.gz
puppet-postfix-0583cf4988aec251f129ac4c595e38ff5bb93132.tar.bz2
Add support for managing header_checks.
This support is modeled after the existing TLS policy management: the header_cheks file is produced by merging snippets shipped by the Puppet fileserver, a site-module and/or postfix::header_checks_snippet defines.
Diffstat (limited to 'manifests/classes')
-rw-r--r--manifests/classes/postfix-header_checks.pp57
-rw-r--r--manifests/classes/postfix.pp6
2 files changed, 63 insertions, 0 deletions
diff --git a/manifests/classes/postfix-header_checks.pp b/manifests/classes/postfix-header_checks.pp
new file mode 100644
index 0000000..071f6b0
--- /dev/null
+++ b/manifests/classes/postfix-header_checks.pp
@@ -0,0 +1,57 @@
+#
+# == Class: postfix::header_checks
+#
+# Manages Postfix header_checks by merging snippets shipped:
+# - in the module's files/header_checks.d/ or puppet:///files/etc/postfix/header_checks.d
+# (the latter takes precedence if present); site-postfix module is supported
+# as well, see the source argument of file {"$postfix_header_checks_snippets_dir"
+# bellow for details.
+# - via postfix::header_checks_snippet defines
+#
+# Example usage:
+#
+# node "toto.example.com" {
+# $postfix_manage_header_checks = yes
+# include postfix
+# }
+#
+class postfix::header_checks {
+
+ include common::moduledir
+ module_dir{'postfix/header_checks': }
+
+ $postfix_header_checks_dir = "${common::moduledir::module_dir_path}/postfix/header_checks"
+ $postfix_header_checks_snippets_dir = "${postfix_header_checks_dir}/header_checks.d"
+ $postfix_merged_header_checks = "${postfix_header_checks_dir}/merged_header_checks"
+
+ file {"$postfix_header_checks_snippets_dir":
+ ensure => 'directory',
+ owner => 'root',
+ group => '0',
+ mode => '700',
+ source => [
+ "puppet:///modules/site-postfix/${fqdn}/header_checks.d",
+ "puppet:///modules/site-postfix/header_checks.d",
+ "puppet:///files/etc/postfix/header_checks.d",
+ "puppet:///modules/postfix/header_checks.d",
+ ],
+ recurse => true,
+ purge => false,
+ }
+
+ concatenated_file { "$postfix_merged_header_checks":
+ dir => "${postfix_header_checks_snippets_dir}",
+ require => File["$postfix_header_checks_snippets_dir"],
+ }
+
+ config_file { '/etc/postfix/header_checks':
+ source => "$postfix_merged_header_checks",
+ subscribe => File["$postfix_merged_header_checks"],
+ }
+
+ postfix::config { "header_checks":
+ value => 'regexp:/etc/postfix/header_checks',
+ require => File['/etc/postfix/header_checks'],
+ }
+
+}
diff --git a/manifests/classes/postfix.pp b/manifests/classes/postfix.pp
index 588bfc8..4446c17 100644
--- a/manifests/classes/postfix.pp
+++ b/manifests/classes/postfix.pp
@@ -40,6 +40,9 @@ class postfix {
case $root_mail_recipient {
"": { $root_mail_recipient = "nobody" }
}
+ case $postfix_manage_header_checks {
+ "": { $postfix_manage_header_checks = "no" }
+ }
case $postfix_manage_tls_policy {
"": { $postfix_manage_tls_policy = "no" }
}
@@ -64,6 +67,9 @@ class postfix {
module_dir{'postfix': }
# Include optional classes
+ if $postfix_manage_header_checks == 'yes' {
+ include postfix::header_checks
+ }
if $postfix_manage_tls_policy == 'yes' {
include postfix::tlspolicy
}