]> gitweb.fluxo.info Git - puppet-nodo.git/commitdiff
Setting up relays with nullmailer
authorSilvio Rhatto <rhatto@riseup.net>
Sun, 30 May 2010 00:08:01 +0000 (21:08 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Sun, 30 May 2010 00:08:01 +0000 (21:08 -0300)
manifests/mail.pp
manifests/subsystems/tunnel.pp

index 1771f571bd82b5a87a7272fa949af2e32200e965..bcc386e85f3d066c4f5f68b7532b7cb2d9215957 100644 (file)
@@ -37,6 +37,7 @@ class nodo::mail {
     "myhostname":         value => "$fqdn";
     "mydestination":      value => $postfix_mydestination;
     "mynetworks":         value => "127.0.0.0/8";
+    "relay_domains":      value => "$domain";
     "virtual_alias_maps": value => "hash:/etc/postfix/virtual";
     "transport_maps":     value => "hash:/etc/postfix/transport";
     "mailbox_command":    value => '/usr/bin/maildrop -d ${USER}';
index 7bca56f263f58e455c4fad1f5c77f7f643cb8b30..b396c6e2463511281a078d43364646098e936241 100644 (file)
@@ -3,6 +3,7 @@ class tunnel {
   User <<| tag == "autossh-$fqdn" |>>
   File <<| tag == "autossh-$fqdn" |>>
 
+  # TODO: user setup should be put somewhere
   define setup($ensure = present, $user = $hostname, $host, $localport, $hostport, $sshport = '22', $keytype = 'dsa') {
     $dir     = "/var/backups/remote/$user.$domain"
     $tag     = "autossh-$host"
@@ -68,6 +69,50 @@ class tunnel {
   }
 
   define mail ($sshport = '22') {
+    package { "nullmailer":
+      ensure => installed,
+    }
+
+    service { "nullmailer":
+      ensure  => 'running',
+      require => Package['nullmailer'],
+    }
+
+    file { "/etc/mailname":
+      ensure  => present,
+      owner   => root,
+      group   => root,
+      mode    => 0644,
+      content => "$fqdn\n",
+      notify  => Service["nullmailer"],
+    }
+
+    file { "/etc/nullmailer":
+      ensure => directory,
+      owner   => root,
+      group   => root,
+      mode   => 0755,
+    }
+
+    file { "/etc/nullmailer/remotes":
+      ensure  => present,
+      owner   => root,
+      group   => root,
+      mode    => 0644,
+      content => "localhost smtp --port=2525\n",
+      notify  => Service["nullmailer"],
+      require => File["/etc/nullmailer"],
+    }
+
+    file { "/etc/nullmailer/adminaddr":
+      ensure  => present,
+      owner   => root,
+      group   => root,
+      mode    => 0644,
+      content => "$root_mail_recipient\n",
+      require => File["/etc/nullmailer"],
+    }
+
     tunnel::setup { "smtp":
       host      => "$name.$domain",
       sshport   => "$sshport",