| LEFT | RIGHT | 
|---|
| (no file at all) |  | 
| 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 } |  | 
| LEFT | RIGHT | 
|---|