/
init.pp
155 lines (132 loc) · 4.72 KB
/
init.pp
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# class: mediawiki
class mediawiki {
include mediawiki::favicons
include mediawiki::cron
include mediawiki::nginx
include mediawiki::php
include ssl::hiera
if hiera(jobrunner) {
include mediawiki::jobrunner
} else {
# Add a cron to run htmlCacheUpdate on all non-jobrunner servers
cron { 'jobqueue_cache':
ensure => present,
command => '/usr/local/bin/foreachwikiindblist /srv/mediawiki/dblist/all.dblist /srv/mediawiki/w/maintenance/runJobs.php --type htmlCacheUpdate',
user => 'www-data',
minute => [ 5, 15, 25, 35, 45, 55 ],
}
}
file { [ '/srv/mediawiki', '/srv/mediawiki/dblist', '/var/log/mediawiki' ]:
ensure => 'directory',
owner => 'www-data',
group => 'www-data',
mode => '0755',
}
file { '/etc/nginx/nginx.conf':
content => template('mediawiki/nginx.conf.erb'),
require => Package['nginx'],
}
file { '/etc/nginx/fastcgi_params':
ensure => present,
source => 'puppet:///modules/mediawiki/nginx/fastcgi_params',
}
file { '/etc/nginx/sites-enabled/default':
ensure => absent,
}
$packages = [
'dvipng',
'imagemagick',
'ploticus',
'ttf-freefont',
'ffmpeg2theora',
'oggvideotools',
'libav-tools',
'libvips-tools',
]
package { $packages:
ensure => present,
}
package { [ 'mediawiki-math-texvc', 'ocaml' ]:
ensure => present,
install_options => ['--no-install-recommends'],
}
file { '/etc/ImageMagick-6/policy.xml':
ensure => present,
source => 'puppet:///modules/mediawiki/imagemagick/policy.xml',
require => Package['imagemagick'],
}
# these aren't autoloaded by ssl::hiera
ssl::cert { 'wildcard.miraheze.org': }
nginx::conf { 'mediawiki-includes':
ensure => present,
source => 'puppet:///modules/mediawiki/nginx/mediawiki-includes.conf',
}
git::clone { 'MediaWiki config':
directory => '/srv/mediawiki/config',
origin => 'https://github.com/miraheze/mw-config.git',
ensure => 'latest',
require => File['/srv/mediawiki'],
}
git::clone { 'MediaWiki core':
directory => '/srv/mediawiki/w',
origin => 'https://github.com/miraheze/mediawiki.git',
branch => 'REL1_27',
ensure => 'latest',
timeout => '550',
recurse_submodules => true,
require => File['/srv/mediawiki'],
}
# FIXME: Ugly hack, *everything* in /srv/mediawiki/w should be owned by www-data,
# but recursive chown in git::clone causes puppet to OOM.
file { '/srv/mediawiki/w/cache':
ensure => directory,
owner => 'www-data',
group => 'www-data',
require => Git::Clone['MediaWiki core'],
}
git::clone { 'MediaWiki vendor':
directory => '/srv/mediawiki/w/vendor',
origin => 'https://github.com/wikimedia/mediawiki-vendor.git',
branch => 'REL1_27',
ensure => 'latest',
require => Git::Clone['MediaWiki core'],
}
# Ensure widgets template directory is read/writeable by webserver if mediawiki is cloned
file { '/srv/mediawiki/w/extensions/Widgets/compiled_templates':
ensure => directory,
owner => 'www-data',
group => 'www-data',
mode => '0755',
require => Git::Clone['MediaWiki core'],
}
file { '/srv/mediawiki/robots.txt':
ensure => 'present',
source => 'puppet:///modules/mediawiki/robots.txt',
require => File['/srv/mediawiki'],
}
file { '/srv/mediawiki/w/LocalSettings.php':
ensure => 'link',
target => '/srv/mediawiki/config/LocalSettings.php',
require => Git::Clone['MediaWiki config'],
}
file { '/srv/mediawiki/config/PrivateSettings.php':
ensure => 'present',
source => 'puppet:///private/mediawiki/PrivateSettings.php',
}
file { '/usr/local/bin/foreachwikiindblist':
ensure => 'present',
mode => 0755,
source => 'puppet:///modules/mediawiki/bin/foreachwikiindblist',
}
logrotate::rotate { 'mediawiki_wikilogs':
logs => '/var/log/mediawiki/*.log',
}
logrotate::rotate { 'mediawiki_debuglogs':
logs => '/var/log/mediawiki/debuglogs/*.log',
}
exec { 'Math texvccheck':
command => '/usr/bin/make --directory=/srv/mediawiki/w/extensions/Math/texvccheck',
creates => '/srv/mediawiki/w/extensions/Math/texvccheck/texvccheck',
require => [ Git::Clone['MediaWiki core'], Package['ocaml'] ],
}
}