1 |
define mediawiki::instance( $title, |
2 |
$wiki_settings = '', |
3 |
$skinsdir = '/usr/share/mediawiki/skins') { |
4 |
|
5 |
include mediawiki::base |
6 |
|
7 |
$path = $name |
8 |
$lang = $name |
9 |
$wiki_root = "$mediawiki::base::root/$path" |
10 |
$db_name = "mediawiki_$name" |
11 |
$db_user = $mediawiki::base::user |
12 |
$db_password = $mediawiki::config::pgsql_password |
13 |
$secret_key = $mediawiki::config::secretkey |
14 |
$ldap_password = $mediawiki::config::ldap_password |
15 |
|
16 |
file { $wiki_root: |
17 |
ensure => directory |
18 |
} |
19 |
|
20 |
file { "$wiki_root/skins": |
21 |
ensure => link, |
22 |
target => $skinsdir, |
23 |
require => File[$wiki_root], |
24 |
} |
25 |
|
26 |
exec { "wikicreate $name": |
27 |
command => "mediawiki-create $wiki_root", |
28 |
cwd => $mediawiki::base::root, |
29 |
require => [File[$wiki_root],Package['mediawiki-minimal']], |
30 |
creates => "$wiki_root/index.php", |
31 |
} |
32 |
|
33 |
postgresql::remote_database { $db_name: |
34 |
user => $db_user, |
35 |
callback_notify => Exec["deploy_db $name"], |
36 |
} |
37 |
|
38 |
exec { "deploy_db $name": |
39 |
command => "php /usr/local/bin/init_wiki.php $wiki_root", |
40 |
refreshonly => true, |
41 |
onlyif => "test -d $wiki_root/config", |
42 |
} |
43 |
|
44 |
file { "$wiki_root/LocalSettings.php": |
45 |
owner => 'apache', |
46 |
mode => '0600', |
47 |
content => template('mediawiki/LocalSettings.php'), |
48 |
# if LocalSettings is created first, the wikicreate script |
49 |
# do not create a confg directory, and so it doesn't |
50 |
# trigger deploy_db exec |
51 |
require => Exec["wikicreate $name"], |
52 |
} |
53 |
} |
54 |
|