OLD | NEW |
| (Empty) |
1 node 'web2' { | |
2 | |
3 class {'web::server': | |
4 vhost => 'adblockplus.org', | |
5 certificate => 'adblockplus.org_sslcert.pem', | |
6 private_key => 'adblockplus.org_sslcert.key', | |
7 is_default => true, | |
8 aliases => ['www.adblockplus.org'], | |
9 custom_config => template('web/adblockplus.org.conf.erb'), | |
10 repository => 'web.adblockplus.org', | |
11 multiplexer_locations => ['/getSubscription'], | |
12 geoip => true, | |
13 } | |
14 | |
15 $sitescripts_var_dir = '/var/lib/sitescripts' | |
16 $subscriptions_repo = "${sitescripts_var_dir}/subscriptionlist" | |
17 | |
18 concat::fragment {'formmail_template': | |
19 target => '/etc/sitescripts.ini', | |
20 content => " | |
21 [multiplexer] | |
22 sitescripts.subscriptions.web.fallback = | |
23 [subscriptions] | |
24 repository=$sitescripts_var_dir/subscriptionlist", | |
25 } | |
26 | |
27 user {'sitescripts': | |
28 ensure => present, | |
29 home => $sitescripts_var_dir | |
30 } | |
31 | |
32 file {$sitescripts_var_dir: | |
33 ensure => directory, | |
34 mode => 0755, | |
35 owner => 'sitescripts', | |
36 group => 'sitescripts' | |
37 } | |
38 | |
39 exec {'fetch_repository_subscriptionlist': | |
40 command => "hg clone --noupdate https://hg.adblockplus.org/subscriptionlist
$subscriptions_repo", | |
41 path => '/usr/local/bin:/usr/bin:/bin', | |
42 user => 'sitescripts', | |
43 timeout => 0, | |
44 onlyif => "test ! -d $subscriptions_repo", | |
45 require => [Package['mercurial'], File[$sitescripts_var_dir]] | |
46 } | |
47 | |
48 cron {'update_repository_subscriptionlist': | |
49 ensure => present, | |
50 environment => hiera('cron::environment', []), | |
51 command => "hg pull --quiet --repository $subscriptions_repo", | |
52 user => 'sitescripts', | |
53 minute => '1-59/20', | |
54 require => Exec['fetch_repository_subscriptionlist'] | |
55 } | |
56 | |
57 # We have to set up the APT source and install the jsdoc package via npm | |
58 # manually. Once we're on Puppet 3, we can use the official nodejs module for | |
59 # all this: https://forge.puppetlabs.com/puppetlabs/nodejs | |
60 | |
61 apt::source {'nodesource': | |
62 location => 'https://deb.nodesource.com/node_4.x', | |
63 release => 'precise', | |
64 repos => 'main', | |
65 key => '68576280', | |
66 key_content => template('web/nodesource.gpg.key.erb'), | |
67 } | |
68 | |
69 package {'nodejs': | |
70 require => Apt::Source['nodesource'], | |
71 } | |
72 | |
73 exec {'install_jsdoc': | |
74 command => 'npm install --global jsdoc', | |
75 path => ['/usr/bin/'], | |
76 require => Package['nodejs'], | |
77 onlyif => 'test ! -x /usr/bin/jsdoc', | |
78 } | |
79 | |
80 package {['make', 'doxygen']:} | |
81 | |
82 cron {'generate_docs': | |
83 ensure => 'present', | |
84 require => [ | |
85 Class['sitescripts'], | |
86 Exec['install_jsdoc'], | |
87 Package['make', 'doxygen'], | |
88 File['/var/www/docs'], | |
89 ], | |
90 command => 'python -m sitescripts.docs.bin.generate_docs', | |
91 user => www, | |
92 minute => '5-55/10', | |
93 } | |
94 | |
95 adblockplus::log::rotation {'nginx_email_submission': | |
96 count => 120, | |
97 ensure => 'present', | |
98 interval => 'monthly', | |
99 path => '/var/log/nginx/email_submission', | |
100 } | |
101 } | |
OLD | NEW |