All Projects → martasd → Puppet Mediawiki

martasd / Puppet Mediawiki

Licence: gpl-3.0
This is a puppet module for deploying multi-tenant mediawiki

Labels

Projects that are alternatives of or similar to Puppet Mediawiki

Zentral
Zentral is an open-source solution for infrastructure monitoring and endpoint event stream processing. It provides build-in orchestration of macOS security components (Santa, Osquery, et-al.), event correlation and event management. It consolidates its features with various data store backends (ElasticStack, Azure Log Analytics, Splunk, et-al.).
Stars: ✭ 522 (+2970.59%)
Mutual labels:  puppet
Legacy Hoodie Vagrant
⛔ not up-to-date
Stars: ✭ 5 (-70.59%)
Mutual labels:  puppet
Fuel Plugin Glance Nfs
MOVED: now at https://opendev.org/x/fuel-plugin-glance-nfs
Stars: ✭ 16 (-5.88%)
Mutual labels:  puppet
Psick
Puppet Systems Infrastructure Construction Kit: The control-repo
Stars: ✭ 666 (+3817.65%)
Mutual labels:  puppet
Puppet Mha
The MHA module handles installing, configuring, and running MHA for MySQL.
Stars: ✭ 5 (-70.59%)
Mutual labels:  puppet
Puppet
The Deep Security Agent is easy to deploy automatically in any environment
Stars: ✭ 6 (-64.71%)
Mutual labels:  puppet
Garethr Docker
Puppet module for managing docker
Stars: ✭ 404 (+2276.47%)
Mutual labels:  puppet
Puppet Checkmk
check_mk module for puppet
Stars: ✭ 16 (-5.88%)
Mutual labels:  puppet
Sgnl05 Colorprompt
Puppet module for adding colors to your bash prompt
Stars: ✭ 5 (-70.59%)
Mutual labels:  puppet
Puppet
Intracto puppet modules
Stars: ✭ 6 (-64.71%)
Mutual labels:  puppet
Vagrantpress
A WordPress Development Environment With Vagrant/Puppet
Stars: ✭ 748 (+4300%)
Mutual labels:  puppet
Puppet Strongswan
Manages StrongSwan on a host with Puppet
Stars: ✭ 5 (-70.59%)
Mutual labels:  puppet
Ghtorrent Vagrant
A Vagrant box with Puppet provisioning for running GHTorrent locally
Stars: ✭ 6 (-64.71%)
Mutual labels:  puppet
Chassis
📦 Chassis is a virtual server for your WordPress site, built using Vagrant.
Stars: ✭ 602 (+3441.18%)
Mutual labels:  puppet
Vagrant Gaudi
[NOT MAINTAINED] Gaudi on vagrant VM
Stars: ✭ 16 (-5.88%)
Mutual labels:  puppet
Puppet Nginx
Puppet Module to manage NGINX on various UNIXes
Stars: ✭ 462 (+2617.65%)
Mutual labels:  puppet
Puppet Udev
Manages the udev package and device rules
Stars: ✭ 5 (-70.59%)
Mutual labels:  puppet
Vagrant Solr
Stars: ✭ 17 (+0%)
Mutual labels:  puppet
Vagrant Rails Dev
my vagrant rails development box
Stars: ✭ 16 (-5.88%)
Mutual labels:  puppet
Puppet Samba
Puppet samba module ⛺
Stars: ✭ 6 (-64.71%)
Mutual labels:  puppet

MediaWiki module for Puppet

Description

This module deploys and manages multiple MediaWiki instances using a single MediaWiki installation. This module has been designed and tested for CentOS 6, Red Hat Enterprise Linux 6, Debian Squeeze, Debian Wheezy, and Ubuntu Precise.

Usage

In site.pp for the node where you wish to deploy MediaWiki, first declare the class mediawiki in order to ensure that mediawiki is installed:

class { 'mediawiki':
  server_name        => 'www.myawesomesite.com',
  admin_email         => '[email protected]',
  db_root_password => 'really_really_long_password',
  doc_root               => '/var/www',
  max_memory       => '1024'
}

The above declaration fetches the official tarball with latest version of MediaWiki and installs it into a directory of choice. In addition to that, it also informs Apache of the server name to use and the email address to display when rendering an error page, sets the password for the mysql root user, specifies the webserver document root, and imposes a maximum memory limit for memcached. Once you ensure that MediaWiki is installed, you can then create new instances like this:

 mediawiki::instance { 'my_wiki1':
   db_password => 'really_long_password',
   db_name     => 'wiki1',
   db_user     => 'wiki1_user',
   port        => '80',
   ensure      => 'present'
 }

 mediawiki::instance { 'my_wiki2':
   db_password => 'another_really_long_password',
   db_name     => 'wiki2',
   db_user     => 'wiki2_user',
   port        => '80',
   ensure      => 'present'
 }

 mediawiki::instance { 'my_wiki3':
   db_password => 'yet_another_really_long_password',
   db_name     => 'wiki3',
   db_user     => 'wiki3_user',
   port        => '80',
   ensure      => 'present'
 }

This codeblock creates three separate instances of MediaWiki, each with its own configuration. All wiki instances, however, share the same MediaWiki source files, which means that the overhead of creating a new instance is very low. Each wiki instance puts configuration files in its own directory and stores wiki content in its own database to achieve isolation. Since a wiki instance is implemented as a defined resource type, Puppet imposes no limit on the number of instances you can create.

To access the first of the newly created MediaWiki instances, enter (http://www.myawesomesite.com/my_wiki1) in your browser.

Preconditions

Since puppet cannot automatically ensure that all parent directories of a directory it manages exist you need to manage these yourself. Therefore, make sure that all parent directories of doc_root directory, an attribute of mediawiki class, exist.

Here is an example how you can do this in Puppet. Let's consider the case when Document Root is configured as /var/www/org1. In this situation, you need to make sure that /var/www/org1 exists and both /var/www and /var/www/org1 are executable by the apache user. To achieve this goal with Puppet on a Debian-based system, add the following to site.pp:

file { '/var/www':
      ensure => 'directory',
      owner  => 'root',
      group  => 'root',
      mode   => '0755',
    }
    
file { '/var/www/org1':
      ensure => 'directory',
      owner  => 'www-data,
      group  => 'www-data,
      mode   => '0755',
    }

On a RHEL/CentOS system, the owner and group of /var/www/org1 needs to be set to apache instead.

Notes On Testing

Puppet module tests reside in the spec directory. To run tests, execute rake spec anywhere in the module's directory. More information about module testing can be found here:

The Next Generation of Puppet Module Testing

Reference

This module is based on puppet-mediawiki by carlasouza available at https://github.com/carlasouza/puppet-mediawiki. Others who contributed to this module include James Turnbull, Zach Leslie, Nan Liu, and Branan Purvine-Riley.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].