aboutsummaryrefslogtreecommitdiffstats
path: root/modules/mediawiki/manifests/instance.pp
diff options
context:
space:
mode:
authorMichael Scherer <misc@mageia.org>2012-03-17 21:18:57 +0000
committerMichael Scherer <misc@mageia.org>2012-03-17 21:18:57 +0000
commit42b8068174b888e1366e82844d8596dfcfbebb72 (patch)
treeada3dbc2190c091cace12f32800711f11135fe16 /modules/mediawiki/manifests/instance.pp
parentc398fb1b893702b5caaa65e342d061e481e26f41 (diff)
downloadpuppet-42b8068174b888e1366e82844d8596dfcfbebb72.tar
puppet-42b8068174b888e1366e82844d8596dfcfbebb72.tar.gz
puppet-42b8068174b888e1366e82844d8596dfcfbebb72.tar.bz2
puppet-42b8068174b888e1366e82844d8596dfcfbebb72.tar.xz
puppet-42b8068174b888e1366e82844d8596dfcfbebb72.zip
split and clean the mediawiki class
Diffstat (limited to 'modules/mediawiki/manifests/instance.pp')
-rw-r--r--modules/mediawiki/manifests/instance.pp54
1 files changed, 54 insertions, 0 deletions
diff --git a/modules/mediawiki/manifests/instance.pp b/modules/mediawiki/manifests/instance.pp
new file mode 100644
index 00000000..4800114a
--- /dev/null
+++ b/modules/mediawiki/manifests/instance.pp
@@ -0,0 +1,54 @@
+define mediawiki::instance( $title,
+ $wiki_settings = '',
+ $skinsdir = '/usr/share/mediawiki/skins') {
+
+ include mediawiki::base
+
+ $path = $name
+ $lang = $name
+ $wiki_root = "$mediawiki::base::root/$path"
+ $db_name = "mediawiki_$name"
+ $db_user = $mediawiki::base::user
+ $db_password = $mediawiki::config::pgsql_password
+ $secret_key = $mediawiki::config::secretkey
+ $ldap_password = $mediawiki::config::ldap_password
+
+ file { $wiki_root:
+ ensure => directory
+ }
+
+ file { "$wiki_root/skins":
+ ensure => link,
+ target => $skinsdir,
+ require => File[$wiki_root],
+ }
+
+ exec { "wikicreate $name":
+ command => "mediawiki-create $wiki_root",
+ cwd => $mediawiki::base::root,
+ require => [File[$wiki_root],Package['mediawiki-minimal']],
+ creates => "$wiki_root/index.php",
+ }
+
+ postgresql::remote_database { $db_name:
+ user => $db_user,
+ callback_notify => Exec["deploy_db $name"],
+ }
+
+ exec { "deploy_db $name":
+ command => "php /usr/local/bin/init_wiki.php $wiki_root",
+ refreshonly => true,
+ onlyif => "test -d $wiki_root/config",
+ }
+
+ file { "$wiki_root/LocalSettings.php":
+ owner => 'apache',
+ mode => '0600',
+ content => template('mediawiki/LocalSettings.php'),
+ # if LocalSettings is created first, the wikicreate script
+ # do not create a confg directory, and so it doesn't
+ # trigger deploy_db exec
+ require => Exec["wikicreate $name"],
+ }
+}
+