Left: | ||
Right: |
LEFT | RIGHT |
---|---|
1 class trac( | 1 class trac( |
2 $domain, | 2 $domain, |
3 $certificate, | 3 $certificate, |
4 $private_key, | 4 $private_key, |
5 $fcgi_config_dir = '/etc/nginx/trac.d', | 5 $fcgi_config_dir = '/etc/nginx/trac.d', |
6 $is_default = false) inherits private::trac { | 6 $is_default = false) inherits private::trac { |
7 | 7 |
8 package {['python-mysqldb','python-pip','subversion', 'tofrodos', 'graphviz']: | 8 package {['python-mysqldb','python-pip','subversion', 'tofrodos', 'graphviz']: |
9 ensure => present | 9 ensure => present |
10 } | 10 } |
11 | 11 |
12 include nginx, spawn-fcgi | 12 include stdlib, |
13 nginx, | |
14 spawn-fcgi | |
13 | 15 |
14 file {$fcgi_config_dir: | 16 file {$fcgi_config_dir: |
15 ensure => directory, | 17 ensure => directory, |
16 owner => 'root', | 18 owner => 'root', |
17 mode => 755, | 19 mode => 755, |
18 require => Package['nginx'], | 20 require => Package['nginx'], |
19 } | 21 } |
20 | 22 |
21 nginx::hostconfig {$domain: | 23 nginx::hostconfig {$domain: |
22 content => "include $fcgi_config_dir/*;", | 24 content => "include $fcgi_config_dir/*;", |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
94 command => "pip install TracThemeEngine", | 96 command => "pip install TracThemeEngine", |
95 require => Package['python-pip'], | 97 require => Package['python-pip'], |
96 unless => "python -c 'import themeengine'", | 98 unless => "python -c 'import themeengine'", |
97 } | 99 } |
98 | 100 |
99 package { 'spambayes': | 101 package { 'spambayes': |
100 ensure => "installed" | 102 ensure => "installed" |
101 } | 103 } |
102 | 104 |
103 exec { 'install_TracSpamFilter': | 105 exec { 'install_TracSpamFilter': |
104 command => "pip install svn+http://svn.edgewall.com/repos/trac/plugins/1.0/s pam-filter", | 106 command => "pip install svn+https://svn.edgewall.org/repos/trac/plugins/1.0/ spam-filter", |
105 require => Package[ | 107 require => Package[ |
106 'spambayes', | 108 'spambayes', |
107 'python-pip'], | 109 'python-pip'], |
108 unless => "python -c 'import tracspamfilter'", | 110 unless => "python -c 'import tracspamfilter'", |
109 } | 111 } |
110 | 112 |
111 exec { 'install_Tractags': | 113 exec { 'install_Tractags': |
112 command => "pip install svn+https://trac-hacks.org/svn/tagsplugin/tags/0.7/" , | 114 command => "pip install svn+https://trac-hacks.org/svn/tagsplugin/tags/0.7/" , |
113 require => Package['python-pip'], | 115 require => Package['python-pip'], |
114 unless => "python -c 'import tractags'", | 116 unless => "python -c 'import tractags'", |
(...skipping 23 matching lines...) Expand all Loading... | |
138 owner => 'trac', | 140 owner => 'trac', |
139 mode => 644, | 141 mode => 644, |
140 } | 142 } |
141 | 143 |
142 file {'/home/trac/robots.txt': | 144 file {'/home/trac/robots.txt': |
143 ensure => 'present', | 145 ensure => 'present', |
144 source => 'puppet:///modules/trac/robots.txt', | 146 source => 'puppet:///modules/trac/robots.txt', |
145 owner => 'trac', | 147 owner => 'trac', |
146 mode => 644, | 148 mode => 644, |
147 } | 149 } |
150 | |
151 file {"trac_performance_fix_py": | |
152 ensure => present, | |
153 path => '/usr/local/lib/python2.7/dist-packages/trac_performance_fix.py', | |
154 source => 'puppet:///modules/trac/trac_performance_fix.py', | |
155 owner => 'root', | |
156 mode => 644, | |
157 } | |
158 | |
148 | 159 |
149 define instance ( | 160 define instance ( |
150 $config = 'trac/trac.ini.erb', | 161 $config = 'trac/trac.ini.erb', |
151 $description = 'Issue Tracker', | 162 $description = 'Issue Tracker', |
152 $location = '/', | 163 $location = '/', |
153 $logo = 'puppet:///modules/trac/logo.png', | 164 $logo = 'puppet:///modules/trac/logo.png', |
154 $database = 'trac', | 165 $database = 'trac', |
155 $permissions = 'puppet:///modules/trac/permissions.csv', | 166 $permissions = 'puppet:///modules/trac/permissions.csv', |
156 $theme = 'puppet:///modules/trac/theme.css') { | 167 $theme = 'puppet:///modules/trac/theme.css') { |
157 | 168 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
226 Exec['install_TicketTemplate'], | 237 Exec['install_TicketTemplate'], |
227 Exec['install_NeverNotifyUpdater'], | 238 Exec['install_NeverNotifyUpdater'], |
228 Exec['install_MasterTickets'], | 239 Exec['install_MasterTickets'], |
229 Exec['install_ThemeEngine'], | 240 Exec['install_ThemeEngine'], |
230 Exec['install_Tractags'], | 241 Exec['install_Tractags'], |
231 Exec['install_TracSpamFilter'], | 242 Exec['install_TracSpamFilter'], |
232 Exec['install_PrivateTickets'], | 243 Exec['install_PrivateTickets'], |
233 Exec['install_TracXMLRPC'], | 244 Exec['install_TracXMLRPC'], |
234 Exec['install_TracHTTPAuth']], | 245 Exec['install_TracHTTPAuth']], |
235 } | 246 } |
236 | 247 |
237 # Ref https://issues.adblockplus.org/ticket/4641 | |
238 $cgi_performance_fix = " | |
Wladimir Palant
2016/11/16 09:26:18
Nit: This isn't really related to CGI in any way,
f.nicolaisen
2016/11/16 15:01:28
Acknowledged.
| |
239 ### Local modifications to the trac.fcgi file | |
240 from trac.web.session import Session | |
241 orig_get = Session.get | |
242 def patched_get(self, key, default=None): | |
243 if key == 'accesskeys': | |
244 return '1' | |
245 return orig_get(self, key, default) | |
246 Session.get = patched_get | |
247 ### End of local modifications | |
248 " | |
249 | |
250 exec {"deploy_$name": | 248 exec {"deploy_$name": |
251 command => "trac-admin /home/trac/$environment \ | 249 command => "trac-admin /home/trac/$environment \ |
252 deploy /home/trac/htdocs-$name \ | 250 deploy /home/trac/htdocs-$name \ |
253 && fromdos /home/trac/htdocs-$name/cgi-bin/trac.fcgi \ | 251 && fromdos /home/trac/htdocs-$name/cgi-bin/trac.fcgi \ |
254 && chmod 755 /home/trac/htdocs-$name/cgi-bin/trac.fcgi", | 252 && chmod 755 /home/trac/htdocs-$name/cgi-bin/trac.fcgi", |
255 user => trac, | 253 user => trac, |
256 path => '/usr/bin:/usr/sbin:/bin:/usr/local/bin', | 254 path => '/usr/bin:/usr/sbin:/bin:/usr/local/bin', |
257 require => [ | 255 require => [ |
258 Exec["update_env_$name"], | 256 Exec["update_env_$name"], |
259 Package["tofrodos"]], | 257 Package["tofrodos"]], |
260 } -> | 258 } |
261 exec {"append_cgi_config_to_$name": | 259 |
262 command => "echo \"$cgi_performance_fix\" >> /home/trac/htdocs-$name/cgi-b in/trac.fcgi", | 260 file_line { "patch $name trac.fcgi": |
Wladimir Palant
2016/11/16 09:26:18
Actually, this needs to be added at the top of the
f.nicolaisen
2016/11/16 15:01:28
Acknowledged.
| |
263 user => trac, | 261 path => "/home/trac/htdocs-$name/cgi-bin/trac.fcgi", |
264 path => '/usr/bin:/usr/sbin:/bin:/usr/local/bin', | 262 match => '^# Author.*$', |
Wladimir Palant
2016/11/16 09:26:18
The way I see it, this command will run every time
f.nicolaisen
2016/11/16 15:01:28
Won't it only run after the "deploy_$name" exec is
Wladimir Palant
2016/11/16 15:16:44
Given that deploy_$name runs every time - sure. No
| |
263 line => "# Author\nimport trac_performance_fix", | |
264 require => Exec["deploy_$name"], | |
265 } | 265 } |
266 | 266 |
267 file {"/home/trac/htdocs-$name/htdocs/common/logo.png": | 267 file {"/home/trac/htdocs-$name/htdocs/common/logo.png": |
268 ensure => present, | 268 ensure => present, |
269 source => $logo, | 269 source => $logo, |
270 owner => trac, | 270 owner => trac, |
271 require => Exec["deploy_$name"], | 271 require => Exec["deploy_$name"], |
272 } | 272 } |
273 | 273 |
274 spawn-fcgi::pool {"tracd_${name}": | 274 spawn-fcgi::pool {"tracd_${name}": |
(...skipping 15 matching lines...) Expand all Loading... | |
290 # Daily restart required for log rotation of all instances at once | 290 # Daily restart required for log rotation of all instances at once |
291 cron {'restart-trac-daily': | 291 cron {'restart-trac-daily': |
292 command => 'service spawn-fcgi restart >/tmp/spawn-fcgi-restart.log', | 292 command => 'service spawn-fcgi restart >/tmp/spawn-fcgi-restart.log', |
293 environment => hiera('cron::environment', []), | 293 environment => hiera('cron::environment', []), |
294 hour => '1', | 294 hour => '1', |
295 minute => '0', | 295 minute => '0', |
296 user => 'root', | 296 user => 'root', |
297 } | 297 } |
298 } | 298 } |
299 | 299 |
LEFT | RIGHT |