jenkins-bot has submitted this change and it was merged.

Change subject: Add mailman config
......................................................................


Add mailman config

Todo:
* Get the service running. Need hexmode's help for that.
* Confirm that we have the correct nginx configuration.

Change-Id: Iee263e70b1c2ab82173195d1ce321a9b2df2d469
---
A puppet/modules/mailman-conf/files/exim4/conf.d/main/04_mailman_options
A puppet/modules/mailman-conf/files/exim4/conf.d/router/450_mailman_aliases
A puppet/modules/mailman-conf/files/exim4/conf.d/transport/40_mailman_pipe
A puppet/modules/mailman-conf/files/nginx/lists.translatewiki.net
A puppet/modules/mailman-conf/manifests/init.pp
D puppet/modules/nginx/files/sites/lists.translatewiki.net
M puppet/modules/nginx/manifests/init.pp
M puppet/site.pp
8 files changed, 124 insertions(+), 24 deletions(-)

Approvals:
  Siebrand: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/puppet/modules/mailman-conf/files/exim4/conf.d/main/04_mailman_options 
b/puppet/modules/mailman-conf/files/exim4/conf.d/main/04_mailman_options
new file mode 100644
index 0000000..b015dd0
--- /dev/null
+++ b/puppet/modules/mailman-conf/files/exim4/conf.d/main/04_mailman_options
@@ -0,0 +1,21 @@
+# file managed by puppet
+# Mailman macro definitions
+
+# Home dir for the Mailman installation
+MM_HOME=/var/lib/mailman
+
+# User and group for Mailman
+MM_UID=list
+MM_GID=list
+
+#
+# Domains that your lists are in - colon separated list
+# you may wish to add these into local_domains as well
+domainlist mm_domains=lists.translatewiki.net
+
+# The path of the Mailman mail wrapper script
+MM_WRAP=MM_HOME/mail/mailman
+#
+# The path of the list config file (used as a required file when
+# verifying list addresses)
+MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck
diff --git 
a/puppet/modules/mailman-conf/files/exim4/conf.d/router/450_mailman_aliases 
b/puppet/modules/mailman-conf/files/exim4/conf.d/router/450_mailman_aliases
new file mode 100644
index 0000000..18e4277
--- /dev/null
+++ b/puppet/modules/mailman-conf/files/exim4/conf.d/router/450_mailman_aliases
@@ -0,0 +1,13 @@
+# file managed by puppet
+mailman_router:
+  driver = accept
+  domains = +mm_domains
+  require_files = MM_LISTCHK
+  local_part_suffix_optional
+  local_part_suffix = -admin : \
+    -bounces   : -bounces+*  : \
+    -confirm   : -confirm+*  : \
+    -join      : -leave      : \
+    -owner     : -request    : \
+    -subscribe : -unsubscribe
+  transport = mailman_transport
diff --git 
a/puppet/modules/mailman-conf/files/exim4/conf.d/transport/40_mailman_pipe 
b/puppet/modules/mailman-conf/files/exim4/conf.d/transport/40_mailman_pipe
new file mode 100644
index 0000000..962018f
--- /dev/null
+++ b/puppet/modules/mailman-conf/files/exim4/conf.d/transport/40_mailman_pipe
@@ -0,0 +1,13 @@
+# file managed by puppet
+mailman_transport:
+  driver = pipe
+  command = MM_WRAP \
+    '${if def:local_part_suffix \
+    {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
+    {post}}' \
+    $local_part
+  current_directory = MM_HOME
+  home_directory = MM_HOME
+  user = MM_UID
+  group = MM_GID
+
diff --git a/puppet/modules/mailman-conf/files/nginx/lists.translatewiki.net 
b/puppet/modules/mailman-conf/files/nginx/lists.translatewiki.net
new file mode 100644
index 0000000..d72ce4c
--- /dev/null
+++ b/puppet/modules/mailman-conf/files/nginx/lists.translatewiki.net
@@ -0,0 +1,26 @@
+# file managed by puppet
+
+# Per http://wiki.nginx.org/Mailman and
+# http://people.adams.edu/~cdmiller/posts/Ubuntu-Mailman-Nginx-Fcgipass/
+
+server {
+       listen 443 ssl;
+       server_name lists.translatewiki.net;
+
+       ssl_certificate     /etc/ssl/private/translatewiki.net.pem;
+       ssl_certificate_key /etc/ssl/private/translatewiki.net.key;
+
+               root /usr/lib/cgi-bin;
+
+               location = / {
+                       rewrite ^ /mailman/listinfo permanent;
+               }
+
+               location = /mailman {
+                       fastcgi_split_path_info (^/mailman/[^/]*)(.*)$;
+                       fastcgi_param SCRIPT_FILENAME 
$document_root$fastcgi_script_name;
+                       fastcgi_param PATH_INFO $fastcgi_path_info;
+                       include /etc/nginx/fastcgi_params;
+                       fastcgi_pass  unix:/var/run/fcgiwrap.socket;
+               }
+}
diff --git a/puppet/modules/mailman-conf/manifests/init.pp 
b/puppet/modules/mailman-conf/manifests/init.pp
new file mode 100644
index 0000000..f2dc58e
--- /dev/null
+++ b/puppet/modules/mailman-conf/manifests/init.pp
@@ -0,0 +1,50 @@
+class mailman-conf {
+  # Would prefer to just use "list" but the module does not support this, so 
make an alias
+  user {
+  'mailman':
+    ensure     => present,
+    uid        => 38,
+    allowdupe  => true,
+    gid        => 38,
+    shell      => '/bin/sh',
+    password   => '',
+    home       => '/var/list',
+    comment    => 'Mailing List Manager'
+  }
+
+  # Would prefer to just use "list" but the module does not support this, so 
make an alias
+  group { "mailman":
+    ensure     => present,
+    gid        => 38,
+    allowdupe  => true,
+  }
+
+  file { '/etc/nginx/sites-available/lists.translatewiki.net':
+    source  => 'puppet:///modules/mailman-conf/nginx/lists.translatewiki.net',
+  }
+
+  file { '/etc/nginx/sites-enabled/lists.translatewiki.net':
+    ensure => 'link',
+    target => '../sites-available/lists.translatewiki.net',
+    notify  => Service['nginx'],
+  }
+
+  # Actual installation using submodule
+  class { 'mailman':
+    default_url_host    => 'lists.translatewiki.net',
+    default_email_host  => 'lists.translatewiki.net',
+    default_url_pattern => 'https://%s/',
+    mailman_site_list   => 'mailman',
+    mm_cfg_settings     => {
+    'ALLOW_SITE_ADMIN_COOKIES' => 'Yes',
+    'PUBLIC_ARCHIVE_URL' => "'https://%(hostname)s/pipermail/%(listname)s'",
+    'MTA' => "'None'",
+    'POSTFIX_STYLE_VIRTUAL_DOMAINS' => "'False'",
+    'DEFAULT_SUBJECT_PREFIX' => "''",
+    'DEFAULT_REPLY_GOES_TO_LIST' => '1',
+    'MAILMAN_UID' => "pwd.getpwnam('list')[2]",
+    'MAILMAN_GID' => "grp.getgrnam('list')[2]",
+    'SMTPHOST' => 'translatewiki.net',
+    },
+  }
+}
diff --git a/puppet/modules/nginx/files/sites/lists.translatewiki.net 
b/puppet/modules/nginx/files/sites/lists.translatewiki.net
deleted file mode 100644
index 7506191..0000000
--- a/puppet/modules/nginx/files/sites/lists.translatewiki.net
+++ /dev/null
@@ -1,15 +0,0 @@
-# file managed by puppet
-
-server {
-       listen 443 ssl;
-       ssl_certificate     /etc/ssl/private/translatewiki.net.pem;
-       ssl_certificate_key /etc/ssl/private/translatewiki.net.key;
-
-       server_name lists.translatewiki.net;
-
-       location / {
-               proxy_pass        http://localhost:81;
-               proxy_set_header  Host $host;
-               proxy_set_header  X-Real-IP $remote_addr;
-       }
-}
diff --git a/puppet/modules/nginx/manifests/init.pp 
b/puppet/modules/nginx/manifests/init.pp
index 251bd8c..4039190 100644
--- a/puppet/modules/nginx/manifests/init.pp
+++ b/puppet/modules/nginx/manifests/init.pp
@@ -45,15 +45,6 @@
     target => '../sites-available/stats.translatewiki.net',
   }
 
-  file { '/etc/nginx/sites-available/lists.translatewiki.net':
-    source  => 'puppet:///modules/nginx/sites/lists.translatewiki.net',
-  }
-
-  file { '/etc/nginx/sites-enabled/lists.translatewiki.net':
-    ensure => 'link',
-    target => '../sites-available/lists.translatewiki.net',
-  }
-
   file { '/etc/nginx/sites-enabled/default':
     ensure => 'absent',
   }
diff --git a/puppet/site.pp b/puppet/site.pp
index 73862d5..e7ad34a 100644
--- a/puppet/site.pp
+++ b/puppet/site.pp
@@ -14,6 +14,7 @@
   include mariadb
   include exim-conf
   include logrotate
+  include mailman-conf
 
   package { 'elasticsearch':
     provider => dpkg,

-- 
To view, visit https://gerrit.wikimedia.org/r/92009
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Iee263e70b1c2ab82173195d1ce321a9b2df2d469
Gerrit-PatchSet: 20
Gerrit-Project: translatewiki
Gerrit-Branch: master
Gerrit-Owner: Siebrand <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to