OLD | NEW |
1 class web::server( | 1 class web::server( |
2 $vhost, | 2 $vhost, |
3 $repository, | 3 $repository, |
4 $certificate = hiera('web::server::certificate', 'undef'), | 4 $certificate = hiera('web::server::certificate', 'undef'), |
5 $private_key = hiera('web::server::private_key', 'undef'), | 5 $private_key = hiera('web::server::private_key', 'undef'), |
6 $is_default = false, | 6 $is_default = false, |
7 $aliases = undef, | 7 $aliases = undef, |
8 $custom_config = undef, | 8 $custom_config = undef, |
9 $multiplexer_locations = undef, | 9 $multiplexer_locations = undef, |
10 $geoip = false, | 10 $geoip = false, |
11 ) { | 11 ) { |
12 | 12 |
13 include sitescripts | 13 include sitescripts |
14 | 14 |
| 15 $PYTHONPATH = 'PYTHONPATH=/opt/cms:/opt/sitescripts' |
| 16 |
15 # Ensure there is at least one character in the respective strings; | 17 # Ensure there is at least one character in the respective strings; |
16 # see https://codereview.adblockplus.org/29329028/#msg3 | 18 # see https://codereview.adblockplus.org/29329028/#msg3 |
17 validate_re($vhost, '.+') | 19 validate_re($vhost, '.+') |
18 validate_re($repository, '.+') | 20 validate_re($repository, '.+') |
19 | 21 |
20 File { | 22 File { |
21 owner => 'root', | 23 owner => 'root', |
22 group => 'root', | 24 group => 'root', |
23 mode => 0644, | 25 mode => 0644, |
24 } | 26 } |
25 | 27 |
26 Cron { | 28 Cron { |
27 environment => concat(hiera('cron::environment', []), [ | 29 environment => concat(hiera('cron::environment', []), [ |
28 'PYTHONPATH=/opt/cms:/opt/sitescripts', | 30 $PYTHONPATH, |
29 ]), | 31 ]), |
30 } | 32 } |
31 | 33 |
32 class {'nginx': | 34 class {'nginx': |
33 geoip_country => $geoip ? { | 35 geoip_country => $geoip ? { |
34 false => undef, | 36 false => undef, |
35 default => '/usr/share/GeoIP/GeoIPv6.dat', | 37 default => '/usr/share/GeoIP/GeoIPv6.dat', |
36 }, | 38 }, |
37 } | 39 } |
38 | 40 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 | 109 |
108 exec {"fetch_repo": | 110 exec {"fetch_repo": |
109 command => "hg clone -U https://hg.adblockplus.org/${repository} /home/www/$
{repository}", | 111 command => "hg clone -U https://hg.adblockplus.org/${repository} /home/www/$
{repository}", |
110 path => ["/usr/bin/", "/bin/"], | 112 path => ["/usr/bin/", "/bin/"], |
111 require => Package['mercurial'], | 113 require => Package['mercurial'], |
112 user => www, | 114 user => www, |
113 timeout => 0, | 115 timeout => 0, |
114 creates => "/home/www/${repository}/.hg/hgrc", | 116 creates => "/home/www/${repository}/.hg/hgrc", |
115 } | 117 } |
116 | 118 |
| 119 $initialize_content_exec = [ |
| 120 'python', '-m', 'cms.bin.generate_static_pages', |
| 121 "/home/www/${repository}", "/var/www/${vhost}", |
| 122 ] |
| 123 |
| 124 if $::environment == 'development' { |
| 125 exec {"initialize_content": |
| 126 command => shellquote($initialize_content_exec), |
| 127 path => ["/usr/bin/", "/bin/"], |
| 128 user => www, |
| 129 require => [Exec["fetch_repo"], Exec["fetch_cms"]], |
| 130 environment => $PYTHONPATH, |
| 131 } |
| 132 } |
| 133 |
117 file {'/var/www': | 134 file {'/var/www': |
118 ensure => directory, | 135 ensure => directory, |
119 mode => 755, | 136 mode => 755, |
120 } | 137 } |
121 | 138 |
122 file {[ | 139 file {[ |
123 "/var/cache/$repository", | 140 "/var/cache/$repository", |
124 "/var/www/$vhost", | 141 "/var/www/$vhost", |
125 "/var/www/docs", | 142 "/var/www/docs", |
126 ]: | 143 ]: |
127 ensure => directory, | 144 ensure => directory, |
128 owner => www, | 145 owner => www, |
129 mode => 755, | 146 mode => 755, |
130 } | 147 } |
131 | 148 |
132 cron {'update_cms': | 149 cron {'update_cms': |
133 ensure => present, | 150 ensure => present, |
134 command => "hg pull -q -u -R /opt/cms", | 151 command => "hg pull -q -u -R /opt/cms", |
135 minute => '4-59/20', | 152 minute => '4-59/20', |
136 } | 153 } |
137 | 154 |
138 cron {'update_repo': | 155 cron {'update_repo': |
139 ensure => present, | 156 ensure => present, |
140 command => "hg pull -q -R /home/www/${repository} && python -m cms.bin.gener
ate_static_pages /home/www/${repository} /var/www/${vhost}", | 157 command => "hg pull -q -R /home/www/${repository} && python -m cms.bin.gener
ate_static_pages /home/www/${repository} /var/www/${vhost}", |
141 user => www, | 158 user => www, |
142 minute => '5-59/20', | 159 minute => '5-59/20', |
143 } | 160 } |
144 | 161 |
145 } | 162 } |
OLD | NEW |