aboutsummaryrefslogtreecommitdiff
path: root/manifests/init.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/init.pp')
-rw-r--r--manifests/init.pp103
1 files changed, 53 insertions, 50 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
index 5b04a0f..20b04f4 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -5,17 +5,55 @@
# delivery and an SMTP server listening on the loopback interface.
#
# Parameters:
-# - *$postfix_smtp_listen*: address on which the smtp service will listen to. defaults to 127.0.0.1
+# - *$smtp_listen*: address on which the smtp service will listen to. defaults to 127.0.0.1
# - *$root_mail_recipient*: who will recieve root's emails. defaults to "nobody"
+# - *$anon_sasl*: set $anon_sasl="yes" to hide the originating IP in email
+# - *$manage_header_checks*: manage header checks
+# - *$manage_tls_policy*: manage tls policy
+# - *$manage_transport_regexp*: manage transport regexps
+# - *$manage_virtual_regexp*: manage virtual regexps
+# - *$tls_fingerprint_digest*: fingerprint digest for tls policy class
+# - *$use_amavisd*: set to "yes" to configure amavis
+# - *$use_dovecot_lda*: include dovecot declaration at master.cf
+# - *$use_schleuder*: whether to include schleuder portion at master.cf
+# - *$use_sympa*: whether to include sympa portion at master.cf
+# - *$use_firma*: whether to include firma portion at master.cf
+# - *$use_mlmmj*: whether to include mlmmj portion at master.cf
+# - *$use_submission*: set to "yes" to enable submission section at master.cf
+# - *$use_smtps*: set to "yes" to enable smtps section at master.cf
+# - *$mastercf_tail*: set this for additional content to be added at the end of master.cf
+# - *$inet_interfaces*: which inet interface postfix should listen on
+# - *$myorigin*: sets postfix $myorigin configuration
#
# Example usage:
#
# node "toto.example.com" {
-# $postfix_smtp_listen = "192.168.1.10"
-# include postfix
+# class { 'postfix':
+# smtp_listen => "192.168.1.10"
+# }
# }
#
-class postfix {
+class postfix(
+ $smtp_listen = "127.0.0.1",
+ $root_mail_recipient = "nobody",
+ $anon_sasl = "no",
+ $manage_header_checks = "no",
+ $manage_tls_policy = "no",
+ $manage_transport_regexp = "no",
+ $manage_virtual_regexp = "no",
+ $tls_fingerprint_digest = 'sha1'
+ $use_amavisd = "no",
+ $use_dovecot_lda = "no",
+ $use_schleuder = "no",
+ $use_sympa = "no",
+ $use_firma = "no",
+ $use_mlmmj = "no",
+ $use_submission = "no",
+ $use_smtps = "no",
+ $mastercf_tail = "",
+ $inet_interfaces = 'all',
+ $myorigin = $::fqdn
+) {
# selinux labels differ from one distribution to another
case $::operatingsystem {
@@ -33,65 +71,30 @@ class postfix {
}
}
- # Default value for various options
- case $postfix_smtp_listen {
- "": { $postfix_smtp_listen = "127.0.0.1" }
- }
- case $root_mail_recipient {
- "": { $root_mail_recipient = "nobody" }
- }
- case $postfix_anon_sasl {
- "": { $postfix_anon_sasl = "no" }
- }
- case $postfix_manage_header_checks {
- "": { $postfix_manage_header_checks = "no" }
- }
- case $postfix_manage_tls_policy {
- "": { $postfix_manage_tls_policy = "no" }
- }
- case $postfix_use_amavisd {
- "": { $postfix_use_amavisd = "no" }
- }
- case $postfix_use_dovecot_lda {
- "": { $postfix_use_dovecot_lda = "no" }
- }
- case $postfix_use_schleuder {
- "": { $postfix_use_schleuder = "no" }
- }
- case $postfix_use_sympa {
- "": { $postfix_use_sympa = "no" }
- }
- case $postfix_mastercf_tail {
- "": { $postfix_mastercf_tail = "" }
- }
- case $postfix_inet_interfaces {
- "": { $postfix_inet_interfaces = 'all' }
- }
- case $postfix_myorigin {
- "": { $postfix_myorigin = $fqdn }
- }
# Bootstrap moduledir
include common::moduledir
module_dir{'postfix': }
# Include optional classes
- if $postfix_anon_sasl == 'yes' {
+ if $anon_sasl == 'yes' {
include postfix::anonsasl
}
- if $postfix_manage_header_checks == 'yes' {
+ if $header_checks == 'yes' {
include postfix::header_checks
}
- if $postfix_manage_tls_policy == 'yes' {
- include postfix::tlspolicy
+ if $manage_tls_policy == 'yes' {
+ class { 'postfix::tlspolicy':
+ fingerprint_digest => $tls_fingerprint_digest,
+ }
}
- if $postfix_use_amavisd == 'yes' {
+ if $use_amavisd == 'yes' {
include postfix::amavis
}
- if $postfix_manage_transport_regexp == 'yes' {
+ if $manage_transport_regexp == 'yes' {
include postfix::transport_regexp
}
- if $postfix_manage_virtual_regexp == 'yes' {
+ if $manage_virtual_regexp == 'yes' {
include postfix::virtual_regexp
}
@@ -163,9 +166,9 @@ class postfix {
# Default configuration parameters
postfix::config {
- "myorigin": value => "${postfix_myorigin}";
+ "myorigin": value => "${myorigin}";
"alias_maps": value => "hash:/etc/aliases";
- "inet_interfaces": value => "${postfix_inet_interfaces}";
+ "inet_interfaces": value => "${inet_interfaces}";
}
case $::operatingsystem {