Mediawiki module for Puppet ==
NexusIS’ fork ===
This fork brings the module up to date with latest dependency modules as well as adds a Type and Provider for MediaWiki Extensions.
hexmode’s fork ===
This fork is intended to adapt the module to my client’s needs and (hopefully) incorporate some of the work from [www.mediawiki.org/wiki/MediaWiki-Vagrant MediaWiki-Vagrant].
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 ===
First, install the mediawiki package which will be used by all wiki instances:
class { 'mediawiki':
server_name => 'www.example.com',
admin_email => 'admin@puppetlabs.com',
db_root_password => 'really_really_long_password',
doc_root => '/var/www/wikis'
max_memory => '1024'
}
Next, create an individual wiki instance:
mediawiki::instance { 'my_wiki1':
db_password => 'super_long_password',
db_name => 'wiki1',
db_user => 'wiki1_user',
port => '80',
ensure => 'present'
}
Using this module, one can create multiple independent wiki instances. To create another wiki instance, add the following puppet code:
mediawiki::instance { 'my_wiki2':
db_password => 'another_super_long_password',
db_name => 'another_wiki',
db_user => 'another_wiki_user'
port => '80',
ensure => 'present'
}
You can now also manage Extensions:
mediawiki::manage_extension{'ConfirmAccount':
ensure => present,
instance => 'my_wiki1',
source => 'https://codeload.github.com/wikimedia/mediawiki-extensions-ConfirmAccount/legacy.tar.gz/REL1_22',
doc_root => '/var/www/wikis',
require => Mediawiki::Instance['my_wiki1']
}
Preconditions ===
Since puppet cannot ensure that all parent directories exist you need to manage these yourself. Therefore, make sure that all parent directories of ‘doc_root` directory, an attribute of `mediawiki` class, exist.
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:
- puppetlabs.com/blog/the-next-generation-of-puppet-module-testing The Next Generation of Puppet Module Testing
-
Reference ==
This module is based on puppet-mediawiki by martasd and NexusIS available at github.com/martasd/puppet-mediawiki and github.com/NexusIS/puppet-mediawiki.