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