Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F11012846
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
10 KB
Subscribers
None
View Options
diff --git a/manifests/init.pp b/manifests/init.pp
index ca6580c..db6e0b9 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -1,41 +1,48 @@
# == Class: mediawiki
#
# Full description of class mediawiki here.
#
# === Parameters
#
# Document parameters here.
#
# [*sample_parameter*]
# Explanation of what this parameter affects and what it defaults to.
# e.g. "Specify one or more upstream ntp servers as an array."
#
# === Variables
#
# Here you should define a list of variables that this module would require.
#
# [*sample_variable*]
# Explanation of how this variable affects the funtion of this class and if
# it has a default. e.g. "The parameter enc_ntp_servers must be set by the
# External Node Classifier as a comma separated list of hostnames." (Note,
# global variables should be avoided in favor of class parameters as
# of Puppet 2.6.)
#
# === Examples
#
# class { 'mediawiki':
# servers => [ 'pool.ntp.org', 'ntp.local.company.com' ],
# }
#
# === Authors
#
# Author Name <author@domain.com>
#
# === Copyright
#
# Copyright 2016 Your name here, unless otherwise noted.
#
class mediawiki {
+ $packages = [
+ 'mediawiki',
+ 'mediawiki-extensions',
+ 'imagemagick',
+ ]
-
+ package {$packages:
+ ensure => latest,
+ }
}
diff --git a/manifests/instance.pp b/manifests/instance.pp
new file mode 100644
index 0000000..d990d83
--- /dev/null
+++ b/manifests/instance.pp
@@ -0,0 +1,128 @@
+define mediawiki::instance (
+ $vhost_name,
+ $vhost_aliases,
+ $vhost_ssl_protocol,
+ $vhost_ssl_honorcipherorder,
+ $vhost_ssl_cipher,
+ $vhost_ssl_cert,
+ $vhost_ssl_ca,
+ $vhost_ssl_key,
+ $vhost_ssl_hsts_header,
+ $vhost_docroot,
+ $vhost_fpm_root,
+ $vhost_basic_auth,
+ $db_user,
+ $db_basename,
+ $db_host,
+ $db_password,
+ $secret_key,
+ $upgrade_key
+ ){
+ $vhost_basic_auth_file = "/etc/apache2/mediawiki_${vhost_name}http_auth"
+ $config = "/etc/mediawiki/LocalSettings_${vhost_name}.php"
+
+
+ include ::mysql::client
+
+ ::mysql::db {$db_basename:
+ user => $db_user,
+ password => $db_password,
+ host => $db_host,
+ grant => ['ALL'],
+ }
+
+ include ::apache
+ include ::apache::mod::proxy
+ include ::profile::apache::mod_proxy_fcgi
+
+ ::apache::vhost {"${vhost_name}_non-ssl":
+ servername => $vhost_name,
+ serveraliases => $vhost_aliases,
+ port => '80',
+ docroot => $vhost_docroot,
+ redirect_status => 'permanent',
+ redirect_dest => "https://${vhost_name}/",
+ }
+
+ if $vhost_basic_auth {
+ file {$vhost_basic_auth_file:
+ ensure => present,
+ owner => 'root',
+ group => 'www-data',
+ mode => '0640',
+ content => $vhost_basic_auth,
+ }
+ $root_directory = [{
+ path => '/',
+ provider => 'location',
+ auth_type => 'Basic',
+ auth_name => 'Software Heritage development',
+ auth_user_file => $vhost_basic_auth_file,
+ auth_require => 'valid-user',
+ }]
+ }
+ else {
+ file {$vhost_basic_auth_file:
+ ensure => absent,
+ }
+ $root_directory = {}
+ }
+
+ ::apache::vhost {"${vhost_name}_ssl":
+ servername => $vhost_name,
+ serveraliases => $vhost_aliases,
+ port => '443',
+ ssl => true,
+ ssl_protocol => $vhost_ssl_protocol,
+ ssl_honorcipherorder => $vhost_ssl_honorcipherorder,
+ ssl_cipher => $vhost_ssl_cipher,
+ ssl_cert => $vhost_ssl_cert,
+ ssl_ca => $vhost_ssl_ca,
+ ssl_key => $vhost_ssl_key,
+ headers => [$vhost_ssl_hsts_header],
+ docroot => $vhost_docroot,
+ proxy_pass_match => [
+ { path => '^/(.*\.php(/.*)?)$',
+ url => "fcgi://${vhost_fpm_root}${vhost_docroot}/\$1",
+ },
+ ],
+ directories => [
+ $root_directory,
+ { path => "${vhost_docroot}/config",
+ provider => 'directory',
+ override => ['None'],
+ },
+ { path => "${vhost_docroot}/images",
+ provider => 'directory',
+ override => ['None'],
+ },
+ { path => "${vhost_docroot}/upload",
+ provider => 'directory',
+ override => ['None'],
+ },
+ ],
+ require => [
+ File[$vhost_ssl_cert],
+ File[$vhost_ssl_ca],
+ File[$vhost_ssl_key],
+ File[$config],
+ ],
+ }
+
+ # Uses variables:
+ # $vhost_name
+ # $db_basename
+ # $db_user
+ # $db_host
+ # $db_password
+ # $secret_key
+ # $upgrade_key
+ file {$config:
+ ensure => present,
+ owner => 'root',
+ group => 'www-data',
+ mode => '0640',
+ content => template('mediawiki/LocalSettings_vhost.php.erb'),
+ notify => Service['php5-fpm'],
+ }
+}
diff --git a/templates/LocalSettings.php.erb b/templates/LocalSettings.php.erb
new file mode 100644
index 0000000..4196791
--- /dev/null
+++ b/templates/LocalSettings.php.erb
@@ -0,0 +1,12 @@
+<?php
+# This file is managed by puppet. Local modifications will be overwritten.
+
+ switch ( $_SERVER["SERVER_NAME"] ) {
+ case "intranet.softwareheritage.org":
+ require_once "LocalSettings_intranet.softwareheritage.org.php";
+ break;
+
+ default:
+ echo "This wiki is not available. Check server configuration.";
+ exit( 0 );
+ }
diff --git a/templates/LocalSettings_vhost.php.erb b/templates/LocalSettings_vhost.php.erb
new file mode 100644
index 0000000..1bfad6e
--- /dev/null
+++ b/templates/LocalSettings_vhost.php.erb
@@ -0,0 +1,161 @@
+<?php
+# This file is managed by puppet. Local modifications will be overwritten.
+#
+# This file was automatically generated by the MediaWiki 1.19.20+dfsg-0+deb7u3
+# installer. If you make manual changes, please keep track in case you
+# need to recreate them later.
+#
+# See includes/DefaultSettings.php for all configurable settings
+# and their default values, but don't forget to make changes in _this_
+# file, not there.
+#
+# Further documentation for configuration settings may be found at:
+# http://www.mediawiki.org/wiki/Manual:Configuration_settings
+
+# Protect against web entry
+if ( !defined( 'MEDIAWIKI' ) ) {
+ exit;
+}
+
+## Uncomment this to disable output compression
+# $wgDisableOutputCompression = true;
+
+$wgSitename = "SoftwareHeritage";
+
+## The URL base path to the directory containing the wiki;
+## defaults for all runtime URL paths are based off of this.
+## For more information on customizing the URLs please see:
+## http://www.mediawiki.org/wiki/Manual:Short_URL
+$wgScriptPath = "";
+$wgScriptExtension = ".php";
+
+## The protocol and server name to use in fully-qualified URLs
+$wgServer = "https://<%= @vhost_name %>";
+
+## The relative URL path to the skins directory
+$wgStylePath = "$wgScriptPath/skins";
+
+## The relative URL path to the logo. Make sure you change this from the default,
+## or else you'll overwrite your logo when you upgrade!
+$wgLogo = "/images/b/b2/Swh-logo.png";
+$wgFavicon = "/images/b/b2/Swh-logo.png";
+
+## UPO means: this is also a user preference option
+
+$wgEnableEmail = true;
+$wgEnableUserEmail = true; # UPO
+
+$wgEmergencyContact = "info@softwareheritage.org";
+$wgPasswordSender = "info@softwareheritage.org";
+
+$wgEnotifUserTalk = true; # UPO
+$wgEnotifWatchlist = true; # UPO
+$wgEmailAuthentication = true;
+
+## Database settings
+$wgDBtype = "mysql";
+$wgDBserver = "<%= @db_host %>";
+$wgDBname = "<%= @db_basename %>";
+$wgDBuser = "<%= @db_user %>";
+$wgDBpassword = "<%= @db_password %>";
+
+# MySQL specific settings
+$wgDBprefix = "";
+
+# MySQL table options to use during installation or update
+$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
+
+# Experimental charset support for MySQL 5.0.
+$wgDBmysql5 = false;
+
+## Shared memory settings
+$wgMainCacheType = CACHE_NONE;
+$wgMemCachedServers = array();
+
+## To enable image uploads, make sure the 'images' directory
+## is writable, then set this to true:
+$wgEnableUploads = true;
+$wgUseImageMagick = true;
+$wgImageMagickConvertCommand = "/usr/bin/convert";
+
+# InstantCommons allows wiki to use images from http://commons.wikimedia.org
+$wgUseInstantCommons = false;
+
+## If you use ImageMagick (or any other shell command) on a
+## Linux server, this will need to be set to the name of an
+## available UTF-8 locale
+$wgShellLocale = "en_US.utf8";
+
+## If you want to use image uploads under safe mode,
+## create the directories images/archive, images/thumb and
+## images/temp, and make them all writable. Then uncomment
+## this, if it's not already uncommented:
+#$wgHashedUploadDirectory = false;
+
+## Set $wgCacheDirectory to a writable directory on the web server
+## to make your wiki go slightly faster. The directory should not
+## be publically accessible from the web.
+#$wgCacheDirectory = "$IP/cache";
+
+# Site language code, should be one of the list in ./languages/Names.php
+$wgLanguageCode = "en";
+
+$wgSecretKey = "<%= @secret_key %>";
+
+# Site upgrade key. Must be set to a string (default provided) to turn on the
+# web installer while LocalSettings.php is in place
+$wgUpgradeKey = "<%= @upgrade_key %>";
+
+## Default skin: you can change the default skin. Use the internal symbolic
+## names, ie 'standard', 'nostalgia', 'cologneblue', 'monobook', 'vector':
+$wgDefaultSkin = "vector";
+
+## For attaching licensing metadata to pages, and displaying an
+## appropriate copyright notice / icon. GNU Free Documentation
+## License and Creative Commons licenses are supported so far.
+$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
+$wgRightsUrl = "";
+$wgRightsText = "";
+$wgRightsIcon = "";
+
+# Path to the GNU diff3 utility. Used for conflict resolution.
+$wgDiff3 = "/usr/bin/diff3";
+
+# debian-specific include:
+if (is_file("/etc/mediawiki-extensions/extensions.php")) {
+ include("/etc/mediawiki-extensions/extensions.php");
+}
+
+# Query string length limit for ResourceLoader. You should only set this if
+# your web server has a query string length limit (then set it to that limit),
+# or if you have suhosin.get.max_value_length set in php.ini (then set it to
+# that value)
+$wgResourceLoaderMaxQueryLength = -1;
+
+
+
+# End of automatically generated settings.
+# Add more configuration options below.
+
+$wgGroupPermissions['*']['edit'] = false;
+
+$wgFileExtensions[] = 'pdf';
+
+$wgNamespacesToBeSearchedDefault = array(
+ NS_MAIN => true,
+ NS_TALK => true,
+ NS_USER => true,
+ NS_USER_TALK => true,
+ NS_PROJECT => true,
+ NS_PROJECT_TALK => true,
+ NS_FILE => true,
+ NS_FILE_TALK => true,
+ NS_MEDIAWIKI => true,
+ NS_MEDIAWIKI_TALK => true,
+ NS_TEMPLATE => true,
+ NS_TEMPLATE_TALK => true,
+ NS_HELP => true,
+ NS_HELP_TALK => true,
+ NS_CATEGORY => true,
+ NS_CATEGORY_TALK => true
+);
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Thu, Sep 18, 4:39 AM (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3212695
Attached To
rSPMW Puppet MediaWiki module
Event Timeline
Log In to Comment