1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
class mediawiki {
class base {
$root = "/srv/wiki/"
include apache::mod_php
package { "mediawiki-minimal":
ensure => installed,
}
file { $root:
ensure => directory,
}
file { "/usr/local/bin/init_wiki.php":
ensure => present,
owner => root,
group => root,
mode => 755,
source => 'puppet:///modules/mediawiki/init_wiki.php',
}
$user = "mediawiki"
$pgsql_password = extlookup("mediawiki_pgsql",'x')
postgresql::remote_user { $user:
password => $pgsql_password,
}
# TODO create the ldap user
$ldap_password = extlookup('mediawiki_ldap','x')
# TODO write the web configuration
apache::vhost_base { "wiki.$domain":
location => $root,
content => template("mediawiki/wiki_vhost.conf"),
}
apache::vhost_base { "ssl_wiki.$domain":
location => $root,
use_ssl => true,
vhost => "wiki.$domain",
content => template("mediawiki/wiki_vhost.conf"),
}
# add index.php
}
# do wiki basic installation
define instance($title) {
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::base::pgsql_password"
$secret_key = extlookup("mediawiki_secretkey",'x')
file { "$wiki_root":
ensure => directory
}
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::database { "$db_name":
user => $db_user,
callback_notify => Exec["deploy_db $name"],
}
exec { "deploy_db $name":
cmd => "php /usr/local/bin/init_wiki.php $wiki_root",
refreshonly => true,
onlyif => "test -d $wiki_root/config",
}
file { "$wiki_root/LocalSettings.php":
ensure => present,
content => template("mediawiki/LocalSettings.php")
}
}
}
|