Create an exim::manualroute define
authorPeter Palfrader <peter@palfrader.org>
Sun, 22 Sep 2019 10:04:15 +0000 (12:04 +0200)
committerPeter Palfrader <peter@palfrader.org>
Sun, 22 Sep 2019 10:04:15 +0000 (12:04 +0200)
modules/exim/manifests/manualroute.pp [new file with mode: 0644]
modules/roles/manifests/mta.pp

diff --git a/modules/exim/manifests/manualroute.pp b/modules/exim/manifests/manualroute.pp
new file mode 100644 (file)
index 0000000..9167adc
--- /dev/null
@@ -0,0 +1,22 @@
+# register an exim manualroute on the mail relays
+#
+# @param domain     email domain (defaults to $name)
+# @param target     targethost
+# @param mailport   targetport (defaults to exim::mail_port if set, else 25)
+define exim::manualroute (
+  String $domain = $name,
+  String $target = $::fqdn,
+  Optional[Integer] $mailport = undef,
+) {
+  if $mailport {
+    $port = $mailport
+  } else {
+    $port = lookup( { 'name' => 'exim::mail_port', 'default_value' => 25 } )
+  }
+
+  @@concat::fragment { "manualroute-to-${::domain}":
+    tag     => 'exim::manualroute::to::mailrelay',
+    target  => '/etc/exim4/manualroute',
+    content => "${::domain}:   ${::target}::${port}",
+  }
+}
index 511a00b..9044803 100644 (file)
@@ -32,11 +32,7 @@ class roles::mta(
   if $mxdata and $mxdata.any |$item| { $item =~ /INCOMING-MX/ } {
     # a mail satellite.  Gets mail via the mailrelays and sends out mail via the mail relays
 
-    @@concat::fragment { "manualroute-to-${::fqdn}":
-      tag     => 'exim::manualroute::to::mailrelay',
-      target  => '/etc/exim4/manualroute',
-      content => "${::fqdn}:   ${::fqdn}::${mailport}",
-    }
+    exim::manualroute{ $::fqdn: }
 
     @@ferm::rule::simple { "submission-from-${::fqdn}":
       tag   => 'smtp::server::submission::to::mail-relay',