From d68c6987a345f9de6b383482d28f06c4881cfc2b Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Wed, 6 Jun 2012 12:08:25 -0700 Subject: [PATCH] Install mailman apache config. Also includes default index.html file which needs to be customized. Change-Id: Idd2d03a95b8bfaba42d94701dc5a5ced204a1c65 --- modules/mailman/files/apache.conf | 73 --------------------- modules/mailman/files/index.html | 4 ++ modules/mailman/manifests/init.pp | 40 +++++++++-- modules/mailman/templates/mailman.vhost.erb | 49 ++++++++++++++ 4 files changed, 88 insertions(+), 78 deletions(-) delete mode 100644 modules/mailman/files/apache.conf create mode 100644 modules/mailman/files/index.html create mode 100644 modules/mailman/templates/mailman.vhost.erb diff --git a/modules/mailman/files/apache.conf b/modules/mailman/files/apache.conf deleted file mode 100644 index a7f421cc5f..0000000000 --- a/modules/mailman/files/apache.conf +++ /dev/null @@ -1,73 +0,0 @@ -# Sample configuration for Debian mailman with Apache - -# We can find mailman here: -ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/ -# And the public archives: -Alias /pipermail/ /var/lib/mailman/archives/public/ -# Logos: -Alias /images/mailman/ /usr/share/images/mailman/ - -# Use this if you don't want the "cgi-bin" component in your URL: -# In case you want to access mailman through a shorter URL you should enable -# this: -#ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ -# In this case you need to set the DEFAULT_URL_PATTERN in -# /etc/mailman/mm_cfg.py to http://%s/mailman/ for the cookie -# authentication code to work. Note that you need to change the base -# URL for all the already-created lists as well. - - - AllowOverride None - Options ExecCGI - AddHandler cgi-script .cgi - Order allow,deny - Allow from all - - - Options FollowSymlinks - AllowOverride None - Order allow,deny - Allow from all - - - AllowOverride None - Order allow,deny - Allow from all - - - -## The following describes how to configure mailman on -## a dedicated virtual host, courtesy Marco d'Itri. - -# Add these lines in /etc/mailman/mm_cfg.py: -#DEFAULT_EMAIL_HOST = 'lists.example.net' -#DEFAULT_URL_HOST = 'lists.example.net' -#DEFAULT_URL_PATTERN = 'http://%s/' - -# -#ServerName lists.example.net -#DocumentRoot /var/www/lists -#ErrorLog /var/log/apache2/lists-error.log -#CustomLog /var/log/apache2/lists-access.log combined -# -# -# Options FollowSymLinks -# AllowOverride None -# -# -#Alias /pipermail/ /var/lib/mailman/archives/public/ -#Alias /images/mailman/ /usr/share/images/mailman/ -#ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin -#ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb -#ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm -#ScriptAlias /create /usr/lib/cgi-bin/mailman/create -#ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml -#ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo -#ScriptAlias /options /usr/lib/cgi-bin/mailman/options -#ScriptAlias /private /usr/lib/cgi-bin/mailman/private -#ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist -#ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster -#ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe -#ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ -# - diff --git a/modules/mailman/files/index.html b/modules/mailman/files/index.html new file mode 100644 index 0000000000..1c70d95348 --- /dev/null +++ b/modules/mailman/files/index.html @@ -0,0 +1,4 @@ +

It works!

+

This is the default web page for this server.

+

The web server software is running but no content has been added, yet.

+ diff --git a/modules/mailman/manifests/init.pp b/modules/mailman/manifests/init.pp index 42b161d7f9..4fa1f1c3c6 100644 --- a/modules/mailman/manifests/init.pp +++ b/modules/mailman/manifests/init.pp @@ -8,6 +8,16 @@ class mailman($mailman_host='') { ensure => installed, } + file { "/var/www/index.html": + source => 'puppet:///modules/mailman/index.html', + owner => 'root', + group => 'root', + ensure => 'present', + replace => 'true', + mode => 444, + require => Package["apache2"], + } + file { '/etc/mailman/mm_cfg.py': owner => 'root', group => 'root', @@ -18,14 +28,34 @@ class mailman($mailman_host='') { require => Package["mailman"] } - file { '/etc/mailman/apache.conf': + file { "/etc/apache2/sites-available/mailman": + content => template('mailman/mailman.vhost.erb'), owner => 'root', group => 'root', - mode => 444, ensure => 'present', - source => 'puppet:///modules/mailman/apache.conf', replace => 'true', - require => Package["mailman"] + mode => 444, + require => Package["apache2"], + } + + file { "/etc/apache2/sites-enabled/mailman": + ensure => link, + target => '/etc/apache2/sites-available/mailman', + require => [ + File['/etc/apache2/sites-available/mailman'], + ], + } + + file { '/etc/apache2/sites-enabled/000-default': + require => File['/etc/apache2/sites-available/mailman'], + ensure => absent, + } + + exec { "gracefully restart apache": + subscribe => [ File["/etc/apache2/sites-available/mailman"]], + refreshonly => true, + path => "/bin:/usr/bin:/usr/sbin", + command => "apache2ctl graceful", } service { 'mailman': @@ -38,7 +68,7 @@ class mailman($mailman_host='') { service { 'apache2': ensure => running, hasrestart => true, - subscribe => File['/etc/mailman/apache.conf'], + subscribe => File["/etc/apache2/sites-available/mailman"], require => Package["apache2"] } } diff --git a/modules/mailman/templates/mailman.vhost.erb b/modules/mailman/templates/mailman.vhost.erb new file mode 100644 index 0000000000..5d06ae376d --- /dev/null +++ b/modules/mailman/templates/mailman.vhost.erb @@ -0,0 +1,49 @@ + + ServerName <%= mailman_host %> + + ErrorLog ${APACHE_LOG_DIR}/mailman-error.log + + # Possible values include: debug, info, notice, warn, error, crit, + # alert, emerg. + LogLevel warn + + CustomLog ${APACHE_LOG_DIR}/mailman-access.log combined + + DocumentRoot /var/www + +# We can find mailman here: +ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/ +# And the public archives: +Alias /pipermail/ /var/lib/mailman/archives/public/ +# Logos: +Alias /images/mailman/ /usr/share/images/mailman/ + +# Use this if you don't want the "cgi-bin" component in your URL: +# In case you want to access mailman through a shorter URL you should enable +# this: +#ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ +# In this case you need to set the DEFAULT_URL_PATTERN in +# /etc/mailman/mm_cfg.py to http://%s/mailman/ for the cookie +# authentication code to work. Note that you need to change the base +# URL for all the already-created lists as well. + + + AllowOverride None + Options ExecCGI + AddHandler cgi-script .cgi + Order allow,deny + Allow from all + + + Options FollowSymlinks + AllowOverride None + Order allow,deny + Allow from all + + + AllowOverride None + Order allow,deny + Allow from all + + +