Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: modules/updateserver/manifests/init.pp

Issue 5071748311547904: Issue 1094 - Generate update manifests on the update server (Closed)
Patch Set: Reduced duplication Created July 25, 2014, 7:17 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 class updateserver( 1 class updateserver(
2 $domain, 2 $domain,
3 $certificate, 3 $certificate,
4 $private_key, 4 $private_key,
5 $is_default=false 5 $is_default=false
6 ) { 6 ) {
7 class {'nginx': 7 class {'nginx':
8 worker_processes => 2, 8 worker_processes => 2,
9 worker_connections => 4000, 9 worker_connections => 4000,
10 ssl_session_cache => off, 10 ssl_session_cache => off,
11 } 11 }
12 12
13 File { 13 File {
14 owner => root, 14 owner => root,
15 group => root 15 group => root
16 } 16 }
17 17
18 file {'/var/www': 18 file {'/var/www':
19 ensure => directory, 19 ensure => directory,
20 mode => 0755, 20 mode => 0755,
21 require => Package['nginx'] 21 require => Package['nginx']
22 } 22 }
23 23
24 file {'/var/www/update': 24 $update_dir = '/var/www/update'
25
26 file {"${update_dir}":
Wladimir Palant 2014/07/25 09:50:11 Why put it into quotation marks here? file {$upda
Felix Dahlke 2014/07/25 10:31:15 Done.
25 ensure => directory, 27 ensure => directory,
26 mode => 0755 28 mode => 0755
27 } 29 }
28 30
29 file {'/var/www/update/adblockplusie': 31 $update_manifest_dirs = ["${update_dir}/adblockplus",
32 "${update_dir}/adblockplusandroid",
33 "${update_dir}/adblockplussafari"]
34
35 file {$update_manifest_dirs:
30 ensure => directory, 36 ensure => directory,
31 mode => 0755 37 mode => 0755
32 } 38 }
33 39
34 file {'/var/www/update/adblockplusie/update.json': 40 file {"${update_dir}/adblockplusie":
41 ensure => directory,
42 mode => 0755
43 }
44
45 file {"${update_dir}/adblockplusie/update.json":
35 ensure => file, 46 ensure => file,
36 source => 'puppet:///modules/updateserver/adblockplusie/update.json', 47 source => 'puppet:///modules/updateserver/adblockplusie/update.json',
37 mode => 0644 48 mode => 0644
38 } 49 }
39 50
40 nginx::hostconfig{$domain: 51 nginx::hostconfig{$domain:
41 source => 'puppet:///modules/updateserver/site.conf', 52 source => 'puppet:///modules/updateserver/site.conf',
42 is_default => $is_default, 53 is_default => $is_default,
43 certificate => $certificate, 54 certificate => $certificate,
44 private_key => $private_key, 55 private_key => $private_key,
45 log => 'access_log_update' 56 log => 'access_log_update'
46 } 57 }
58
59 class {'sitescripts':
60 sitescriptsini_source => 'puppet:///modules/updateserver/sitescripts'
61 }
62
63 $base_dir = '/var/lib/adblockplus'
64
65 file {$base_dir:
66 ensure => directory,
67 mode => 0755
68 }
69
70 $safari_certificate_path = "${base_dir}/adblockplussafari.pem"
71
72 file {$safari_certificate_path:
73 source => 'puppet:///modules/private/adblockplussafari.pem'
74 }
75
76 $repositories_to_sync = ['downloads', 'adblockplus', 'adblockplusandroid',
77 'adblockpluschrome', 'elemhidehelper', 'abpwatcher',
78 'abpcustomization', 'urlfixer']
79
80 define fetch_repository() {
81 $repository_path = "${updateserver::base_dir}/${title}"
82 exec {"fetch_repository_${title}":
83 command => "hg clone https://hg.adblockplus.org/${title} ${repository_path }",
84 path => '/usr/bin',
85 timeout => 0,
86 onlyif => "test ! -d ${repository_path}",
87 require => [Package['mercurial'], File[$updateserver::base_dir]]
88 }
89 }
90
91 fetch_repository {$repositories_to_sync: }
92
93 $update_update_manifests_script = '/usr/local/bin/update_update_manifests'
94
95 file {$update_update_manifests_script:
96 mode => '0755',
97 content => template('updateserver/update_update_manifests.erb')
98 }
99
100 $update_update_manifests_dependencies = ['python-m2crypto', 'python-jinja2']
101
102 package {$update_update_manifests_dependencies:}
103
104 exec {'update_update_manifests':
105 command => $update_update_manifests_script,
106 timeout => 0,
107 require => [Exec['fetch_sitescripts'],
108 Fetch_repository[$repositories_to_sync],
109 File[$update_update_manifests_script],
110 File[$update_manifest_dirs], File[$safari_certificate_path],
111 Package[$update_update_manifests_dependencies]]
112 }
113
114 cron {'update_update_manifests':
115 ensure => present,
116 environment => ['MAILTO=admins@adblockplus.org'],
117 command => $update_update_manifests_script,
Wladimir Palant 2014/07/25 09:50:11 I'd rather not have anything from sitescripts run
Felix Dahlke 2014/07/25 10:31:15 I actually started out having a dedicated user for
Wladimir Palant 2014/07/25 11:11:02 The reason is that we have less reason to worry ab
Felix Dahlke 2014/07/25 14:17:56 Done.
118 minute => '*/10',
119 require => Exec['update_update_manifests']
120 }
47 } 121 }
OLDNEW

Powered by Google App Engine
This is Rietveld