1 |
class mediawiki { |
class mediawiki { |
2 |
class base { |
class base { |
3 |
|
|
4 |
|
$root = "/srv/wiki/" |
5 |
|
|
6 |
|
include apache::mod_php |
7 |
|
|
8 |
package { "mediawiki-minimal": |
package { "mediawiki-minimal": |
9 |
ensure => installed, |
ensure => installed, |
10 |
} |
} |
11 |
|
|
12 |
|
file { $root: |
13 |
|
ensure => directory, |
14 |
|
} |
15 |
|
|
16 |
|
$user = "mediawiki" |
17 |
|
|
18 |
$pgsql_password = extlookup("mediawiki_pgsql",'x') |
$pgsql_password = extlookup("mediawiki_pgsql",'x') |
19 |
@@postgresql::user { $user: |
@@postgresql::user { $user: |
20 |
password => $pgsql_password, |
password => $pgsql_password, |
24 |
$ldap_password = extlookup('mediawiki_ldap','x') |
$ldap_password = extlookup('mediawiki_ldap','x') |
25 |
|
|
26 |
# TODO write the web configuration |
# TODO write the web configuration |
27 |
|
apache::vhost_base { "wiki.$domain": |
28 |
|
location => $root, |
29 |
|
content => template("mediawiki/wiki_vhost.conf"), |
30 |
|
} |
31 |
|
|
32 |
|
apache::vhost_base { "ssl_wiki.$domain": |
33 |
|
location => $root, |
34 |
|
use_ssl => true, |
35 |
|
vhost => "wiki.$domain", |
36 |
|
content => template("mediawiki/wiki_vhost.conf"), |
37 |
|
} |
38 |
|
|
39 |
|
|
40 |
|
|
41 |
# add index.php |
# add index.php |
42 |
} |
} |
43 |
|
|
44 |
# do wiki basic installation |
# do wiki basic installation |
45 |
|
|
46 |
define instance { |
define instance($title) { |
47 |
# define a db per instance |
|
48 |
# install / link source code |
include mediawiki::base |
49 |
# add config file |
|
50 |
|
$path = $name |
51 |
|
$lang = $name |
52 |
|
$wiki_root = "$mediawiki::base::root/$path" |
53 |
|
$db_name = "mediawiki_$name" |
54 |
|
$db_user = "$mediawiki::base::user" |
55 |
|
$db_password = "$mediawiki::base::pgsql_password" |
56 |
|
$secret_key = extlookup("mediawiki_secretkey",'x') |
57 |
|
|
58 |
|
file { "$wiki_root": |
59 |
|
ensure => directory |
60 |
|
} |
61 |
|
|
62 |
|
exec { "wikicreate $name": |
63 |
|
command => "mediawiki-create $wiki_root", |
64 |
|
cwd => "$mediawiki::base::root", |
65 |
|
require => [File["$wiki_root"],Package['mediawiki-minimal']], |
66 |
|
creates => "$wiki_root/index.php", |
67 |
|
} |
68 |
|
|
69 |
|
postgresql::database { "$db_name": |
70 |
|
user => $db_user, |
71 |
|
} |
72 |
|
|
73 |
|
file { "$wiki_root/LocalSettings.php": |
74 |
|
ensure => present, |
75 |
|
content => template("mediawiki/LocalSettings.php") |
76 |
|
} |
77 |
} |
} |
78 |
} |
} |