Left: | ||
Right: |
OLD | NEW |
---|---|
1 class discourse inherits private::discourse { | 1 class discourse( |
2 $domain, | |
3 $is_default = false) inherits private::discourse { | |
Felix Dahlke
2014/03/27 15:49:11
Nit: We usually break before ")" in argument lists
Wladimir Palant
2014/03/27 20:28:24
From what I can tell, the only other occasions are
| |
2 include postgresql::server | 4 include postgresql::server |
3 | 5 |
4 postgresql::database {'discourse':} | 6 postgresql::database {'discourse':} |
5 | 7 |
6 postgresql::role {'discourse': | 8 postgresql::role {'discourse': |
7 password_hash => $database_password, | 9 password_hash => $database_password, |
8 db => 'discourse', | 10 db => 'discourse', |
9 login => true, | 11 login => true, |
10 superuser => true, | 12 superuser => true, |
11 require => Postgresql::Database['discourse'] | 13 require => Postgresql::Database['discourse'] |
12 } | 14 } |
13 | 15 |
14 package {['postgresql-contrib', 'redis-server', 'ruby1.9.1']: | 16 package {['postgresql-contrib', 'redis-server', 'ruby1.9.1', 'libjemalloc1', ' imagemagick']: |
15 ensure => present | 17 ensure => present |
16 } | 18 } |
17 | 19 |
18 Exec {path => '/bin:/usr/bin:/usr/sbin:/usr/local/bin'} | 20 Exec {path => '/bin:/usr/bin:/usr/sbin:/usr/local/bin'} |
19 | 21 |
20 exec {'update-alternatives --set ruby "/usr/bin/ruby1.9.1"': | 22 exec {'update-alternatives --set ruby "/usr/bin/ruby1.9.1"': |
21 unless => 'test $(readlink "/etc/alternatives/ruby") == "/usr/bin/ruby1.9.1" ', | 23 unless => 'test $(readlink "/etc/alternatives/ruby") == "/usr/bin/ruby1.9.1" ', |
22 require => Package['ruby1.9.1'] | 24 require => Package['ruby1.9.1'] |
23 } | 25 } |
24 | 26 |
25 exec {'update-alternatives --set gem "/usr/bin/gem1.9.1"': | 27 exec {'update-alternatives --set gem "/usr/bin/gem1.9.1"': |
26 unless => 'test $(readlink "/etc/alternatives/gem") == "/usr/bin/gem1.9.1"', | 28 unless => 'test $(readlink "/etc/alternatives/gem") == "/usr/bin/gem1.9.1"', |
27 require => Package['ruby1.9.1'], | 29 require => Package['ruby1.9.1'], |
28 before => Package['bundler'] | 30 before => Exec['/usr/bin/gem update --system 1.8.25'] |
31 } | |
32 | |
33 exec {'/usr/bin/gem update --system 1.8.25': | |
34 unless => 'test $(gem -v) == "1.8.25"', | |
35 environment => 'REALLY_GEM_UPDATE_SYSTEM=1', | |
36 before => Package['bundler'], | |
29 } | 37 } |
30 | 38 |
31 package {'bundler': | 39 package {'bundler': |
32 ensure => present, | 40 ensure => present, |
33 provider => gem | 41 provider => gem |
34 } | 42 } |
35 | 43 |
36 $gem_dependencies = ['git', 'build-essential', 'ruby1.9.1-dev', 'libxml2-dev', | 44 $gem_dependencies = ['git', 'build-essential', 'ruby1.9.1-dev', 'libxml2-dev', |
37 'libxslt-dev', 'libpq-dev'] | 45 'libxslt-dev', 'libpq-dev'] |
38 package {$gem_dependencies: ensure => present} | 46 package {$gem_dependencies: ensure => present} |
39 | 47 |
40 file {'/opt/discourse': | 48 file {['/opt/discourse', '/opt/discourse/tmp', '/opt/discourse/tmp/pids']: |
41 ensure => directory, | 49 ensure => directory, |
42 mode => 755, | 50 mode => 755, |
43 owner => discourse, | 51 owner => discourse, |
44 group => www-data | 52 group => www-data |
45 } | 53 } |
46 | 54 |
47 file {'/opt/discourse/config/database.yml': | 55 file {'/opt/discourse/config/discourse.conf': |
48 mode => 600, | 56 mode => 600, |
49 owner => discourse, | 57 owner => discourse, |
50 group => www-data, | 58 group => www-data, |
51 content => template('discourse/database.yml.erb'), | 59 content => template('discourse/discourse.conf.erb'), |
52 notify => Service['discourse-thin'], | 60 notify => Service['discourse'], |
53 require => Exec['fetch-discourse'] | |
54 } | |
55 | |
56 file {'/opt/discourse/config/redis.yml': | |
57 mode => 600, | |
58 owner => discourse, | |
59 group => www-data, | |
60 source => 'puppet:///modules/discourse/redis.yml', | |
61 notify => Service['discourse-thin'], | |
62 require => Exec['fetch-discourse'] | 61 require => Exec['fetch-discourse'] |
63 } | 62 } |
64 | 63 |
65 file {'/usr/local/bin/init-discourse': | 64 file {'/usr/local/bin/init-discourse': |
66 mode => 0755, | 65 mode => 0755, |
67 owner => root, | 66 owner => root, |
68 group => root, | 67 group => root, |
69 source => 'puppet:///modules/discourse/init-discourse' | 68 source => 'puppet:///modules/discourse/init-discourse' |
70 } | 69 } |
71 | 70 |
(...skipping 14 matching lines...) Expand all Loading... | |
86 source => 'puppet:///modules/discourse/sudoers', | 85 source => 'puppet:///modules/discourse/sudoers', |
87 require => User['discourse'] | 86 require => User['discourse'] |
88 } | 87 } |
89 | 88 |
90 exec {'fetch-discourse': | 89 exec {'fetch-discourse': |
91 command => "hg clone https://hg.adblockplus.org/discourse /opt/discourse", | 90 command => "hg clone https://hg.adblockplus.org/discourse /opt/discourse", |
92 path => ["/usr/bin/", "/bin/"], | 91 path => ["/usr/bin/", "/bin/"], |
93 user => discourse, | 92 user => discourse, |
94 group => www-data, | 93 group => www-data, |
95 require => [Package['mercurial'], File['/opt/discourse']], | 94 require => [Package['mercurial'], File['/opt/discourse']], |
95 notify => Exec['/usr/local/bin/init-discourse'], | |
96 onlyif => "test ! -d /opt/discourse/.hg" | 96 onlyif => "test ! -d /opt/discourse/.hg" |
97 } | 97 } |
98 | 98 |
99 exec {'/usr/local/bin/init-discourse': | 99 exec {'/usr/local/bin/init-discourse': |
100 subscribe => File['/usr/local/bin/init-discourse'], | 100 subscribe => File['/usr/local/bin/init-discourse'], |
101 refreshonly => true, | 101 refreshonly => true, |
102 environment => ["DISCOURSE_SECRET=${secret}", "AIRBRAKE_KEY=${airbrake_key}" ], | 102 environment => ["AIRBRAKE_KEY=${airbrake_key}"], |
103 user => discourse, | 103 user => discourse, |
104 group => www-data, | 104 group => www-data, |
105 timeout => 0, | 105 timeout => 0, |
106 logoutput => true, | 106 logoutput => true, |
107 require => [Package['bundler', 'postgresql-contrib', $gem_dependencies], | 107 require => [Package['bundler', 'postgresql-contrib', $gem_dependencies], |
108 User['discourse'], File['/etc/sudoers.d/discourse'], | 108 User['discourse'], File['/etc/sudoers.d/discourse'], |
109 Exec['fetch-discourse'], | 109 Exec['fetch-discourse'], |
110 File['/opt/discourse/config/database.yml'], | 110 File['/opt/discourse/config/discourse.conf'], |
111 File['/opt/discourse/config/redis.yml'], | |
112 Postgresql::Role['discourse']] | 111 Postgresql::Role['discourse']] |
113 } | 112 } |
114 | 113 |
115 Discourse::Sitesetting <| |> { | 114 Discourse::Sitesetting <| |> { |
116 require => Exec['/usr/local/bin/init-discourse'] | 115 require => Exec['/usr/local/bin/init-discourse'] |
117 } | 116 } |
118 | 117 |
119 discourse::sitesetting {'title': | 118 discourse::sitesetting {'title': |
120 ensure => present, | 119 ensure => present, |
121 type => 1, | 120 type => 1, |
122 value => 'Adblock Plus internal discussions' | 121 value => 'Adblock Plus internal discussions' |
123 } | 122 } |
124 | 123 |
125 discourse::sitesetting {'notification_email': | 124 discourse::sitesetting {'notification_email': |
126 ensure => present, | 125 ensure => present, |
127 type => 1, | 126 type => 1, |
128 value => 'donotreply@adblockplus.org' | 127 value => 'donotreply@adblockplus.org' |
129 } | 128 } |
130 | 129 |
131 discourse::sitesetting {'contact_email': | 130 discourse::sitesetting {'contact_email': |
132 ensure => present, | 131 ensure => present, |
133 type => 1, | 132 type => 1, |
134 value => 'admins@adblockplus.org' | 133 value => 'admins@adblockplus.org' |
135 } | 134 } |
136 | 135 |
136 discourse::sitesetting {'site_contact_username': | |
137 ensure => present, | |
138 type => 1, | |
139 value => 'system' | |
140 } | |
141 | |
137 discourse::sitesetting {'must_approve_users': | 142 discourse::sitesetting {'must_approve_users': |
138 ensure => present, | 143 ensure => present, |
139 type => 5, | 144 type => 5, |
140 value => 'f' | 145 value => 'f' |
141 } | 146 } |
142 | 147 |
143 discourse::sitesetting {'login_required': | 148 discourse::sitesetting {'login_required': |
144 ensure => present, | 149 ensure => present, |
145 type => 5, | 150 type => 5, |
146 value => 't' | 151 value => 't' |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
268 is_flag => true | 273 is_flag => true |
269 } | 274 } |
270 | 275 |
271 discourse::postactiontype {'spam': | 276 discourse::postactiontype {'spam': |
272 ensure => present, | 277 ensure => present, |
273 id => 7, | 278 id => 7, |
274 position => 6, | 279 position => 6, |
275 is_flag => true | 280 is_flag => true |
276 } | 281 } |
277 | 282 |
278 discourse::admin {$admins: | 283 Discourse::Customservice <| |> { |
279 ensure => present, | 284 user => 'discourse', |
285 workdir => '/opt/discourse', | |
286 env => ['RAILS_ENV=production', 'RUBY_GC_MALLOC_LIMIT=90000000', | |
287 'UNICORN_WORKERS=2', 'LD_PRELOAD=/usr/lib/libjemalloc.so.1'], | |
280 require => Exec['/usr/local/bin/init-discourse'] | 288 require => Exec['/usr/local/bin/init-discourse'] |
281 } | 289 } |
282 | 290 |
283 Discourse::Customservice <| |> { | 291 discourse::customservice {'discourse': |
284 user => 'discourse', | 292 command => 'bundle exec config/unicorn_launcher -c config/unicorn.conf.rb', |
285 workdir => '/opt/discourse', | 293 require => File['/opt/discourse/tmp/pids'], |
286 env => ['GEM_HOME=~discourse/.gems', 'RAILS_ENV=production', 'RUBY_GC_MALLOC _LIMIT=90000000'], | |
287 require => Exec['/usr/local/bin/init-discourse'] | |
288 } | |
289 | |
290 discourse::customservice {'discourse-thin': | |
291 command => 'bundle exec thin -S /tmp/discourse-thin.sock start' | |
292 } | 294 } |
293 | 295 |
294 discourse::customservice {'sidekiq': | 296 discourse::customservice {'sidekiq': |
295 command => 'bundle exec sidekiq' | 297 command => 'bundle exec sidekiq' |
296 } | 298 } |
297 | 299 |
298 discourse::customservice {'clockwork': | |
299 command => 'bundle exec clockwork config/clock.rb' | |
300 } | |
301 | |
302 class {'nginx': | 300 class {'nginx': |
303 worker_processes => 1, | 301 worker_processes => 1, |
304 worker_connections => 500 | 302 worker_connections => 500 |
305 } | 303 } |
306 | 304 |
307 file {'/etc/nginx/sites-available/adblockplus.org_sslcert.key': | 305 file {'/etc/nginx/sites-available/adblockplus.org_sslcert.key': |
308 ensure => file, | 306 ensure => file, |
309 notify => Service['nginx'], | 307 notify => Service['nginx'], |
310 before => Nginx::Hostconfig['intraforum.adblockplus.org'], | 308 before => Nginx::Hostconfig['intraforum.adblockplus.org'], |
311 require => Package['nginx'], | 309 require => Package['nginx'], |
312 source => 'puppet:///modules/private/adblockplus.org_sslcert.key' | 310 source => 'puppet:///modules/private/adblockplus.org_sslcert.key' |
313 } | 311 } |
314 | 312 |
315 file {'/etc/nginx/sites-available/adblockplus.org_sslcert.pem': | 313 file {'/etc/nginx/sites-available/adblockplus.org_sslcert.pem': |
316 ensure => file, | 314 ensure => file, |
317 mode => 0400, | 315 mode => 0400, |
318 notify => Service['nginx'], | 316 notify => Service['nginx'], |
319 before => Nginx::Hostconfig['intraforum.adblockplus.org'], | 317 before => Nginx::Hostconfig[$domain], |
320 require => Package['nginx'], | 318 require => Package['nginx'], |
321 source => 'puppet:///modules/private/adblockplus.org_sslcert.pem' | 319 source => 'puppet:///modules/private/adblockplus.org_sslcert.pem' |
322 } | 320 } |
323 | 321 |
324 nginx::hostconfig{'intraforum.adblockplus.org': | 322 nginx::hostconfig{$domain: |
325 source => 'puppet:///modules/discourse/intraforum.adblockplus.org', | 323 content => template('discourse/site.erb'), |
326 enabled => true | 324 enabled => true |
327 } | 325 } |
328 | 326 |
329 file {'/etc/logrotate.d/nginx_intraforum.adblockplus.org': | 327 file {"/etc/logrotate.d/nginx_$domain": |
330 ensure => file, | 328 ensure => file, |
331 require => Nginx::Hostconfig['intraforum.adblockplus.org'], | 329 require => Nginx::Hostconfig[$domain], |
332 source => 'puppet:///modules/discourse/logrotate' | 330 source => 'puppet:///modules/discourse/logrotate' |
333 } | 331 } |
334 } | 332 } |
OLD | NEW |