nm -> hiera role; explicitly include apache2
[mirror/dsa-puppet.git] / modules / roles / manifests / init.pp
1 # = Class: roles
2 #
3 # Lookup role and include relevant classes for roles
4 #
5 # == Sample Usage:
6 #
7 #   include roles
8 #
9 class roles {
10         if has_role('muninmaster') {
11                 include munin::master
12         }
13
14         if has_role('nagiosmaster') {
15                 include nagios::server
16         }
17
18         if has_role('manpages-dyn') {
19                 include roles::manpages_dyn
20         }
21
22         # archive.debian.org
23         if has_role('historical_mirror') {
24                 include roles::historical_mirror
25         }
26
27         # debug archive
28         if has_role('debug_mirror') {
29                 include roles::debug_mirror
30         }
31
32         # ftp.debian.org and its ecosystem
33         if has_role('debian_mirror') {
34                 include roles::debian_mirror
35         }
36         if has_role('ftp_master') {
37                 include roles::ftp_master
38                 include roles::dakmaster
39                 include roles::signing
40         }
41         if has_role('ftp.upload.d.o') {
42                 include roles::ftp_upload
43         }
44         if has_role('ssh.upload.d.o') {
45                 include roles::ssh_upload
46         }
47         if has_role('security_upload') {
48                 include roles::security_upload
49         }
50         #
51         # security.debian.org
52         if has_role('security_master') {
53                 include roles::security_master
54                 include roles::dakmaster
55         }
56
57         if has_role('security_mirror') {
58                 include roles::security_mirror
59         }
60
61         if has_role('git_master') {
62                 include roles::git_master
63         }
64
65         if has_role('people') {
66                 ssl::service { 'people.debian.org': notify  => Exec['service apache2 reload'], key => true, }
67                 onion::service { 'people.debian.org': port => 80, target_address => 'people.debian.org', target_port => 80, direct => true }
68         }
69
70         if has_role('www_master') {
71                 include roles::www_master
72         }
73
74         if has_role('cgi.d.o') {
75                 ssl::service { 'cgi.debian.org': notify  => Exec['service apache2 reload'], key => true, }
76         }
77
78         if has_role('wiki') {
79                 include roles::wiki
80         }
81
82         if has_role('syncproxy') {
83                 include roles::syncproxy
84         }
85
86         if has_role('mailrelay') {
87                 include roles::mailrelay
88         }
89
90         if has_role('pubsub') {
91                 include roles::pubsub
92         }
93
94         if has_role('dns_primary') {
95                 include roles::dns_primary
96         }
97
98         if has_role('dns_geo') {
99                 include roles::dns_geodns
100         }
101
102         if has_role('security_tracker') {
103                 include roles::security_tracker
104         }
105
106         if has_role('rtmaster') {
107                 include roles::rtmaster
108         }
109
110         if has_role('udd') {
111                 include roles::udd
112         }
113
114         if has_role('sso') {
115                 include roles::sso
116         }
117
118         if has_role('sso_rp') {
119                 include roles::sso_rp
120         }
121
122         if has_role('contributors') {
123                 include roles::contributors
124         }
125
126         if has_role('postgres_backup_server') {
127                 include postgres::backup_server
128         }
129
130         if has_role('packages') {
131                 ssl::service { 'packages.debian.org': notify  => Exec['service apache2 reload'], key => true, }
132         }
133
134         if has_role('historicalpackages') {
135                 ssl::service { 'historical.packages.debian.org': notify  => Exec['service apache2 reload'], key => true, }
136         }
137
138         if has_role('qamaster') {
139                 ssl::service { 'qa.debian.org': notify  => Exec['service apache2 reload'], key => true, }
140         }
141
142         if has_role('packagesqamaster') {
143                 ssl::service { 'packages.qa.debian.org': notify  => Exec['service apache2 reload'], key => true, }
144         }
145
146         if has_role('gobby_debian_org') {
147                 ssl::service { 'gobby.debian.org':
148                         notify  => [ Exec['service apache2 reload'], Exec['reload gobby'] ],
149                         key => true,
150                         tlsaport => [443, 6523],
151                 }
152                 file { '/etc/ssl/debian-local/other-keys/gobby.debian.org.key':
153                         ensure => present,
154                         mode => '0440',
155                         group => 'gobby',
156                         content => inline_template('<%= File.read(scope().call_function("hiera", ["paths.letsencrypt_dir"]) + "/gobby.debian.org.key") %>'),
157                         links => follow,
158                         notify => Exec['reload gobby'],
159                 }
160                 exec { 'reload gobby':
161                         command => 'pkill -u gobby -HUP -x infinoted',
162                         refreshonly => true,
163                 }
164         }
165
166         if has_role('search_backend') {
167                 include roles::search_backend
168         }
169         if has_role('search_frontend') {
170                 include roles::search_frontend
171         }
172
173         if has_role('dgit_browse') {
174                 include roles::dgit_browse
175         }
176         if has_role('dgit_git') {
177                 include roles::dgit_git
178         }
179
180         if $::hostname in [lw01, lw02, lw03, lw04, lw09, lw10] {
181                 include roles::snapshot
182         }
183
184         if has_role('snapshot_web') {
185                 include roles::snapshot_web
186         }
187
188         if has_role('snapshot_shell') {
189                 include roles::snapshot_shell
190         }
191
192         if has_role('debtags') {
193                 include roles::debtags
194         }
195
196         if has_role('planet_master') {
197                 include roles::planet_master
198         }
199         if has_role('planet_search') {
200                 ssl::service { 'planet-search.debian.org': notify  => Exec['service apache2 reload'], key => true, }
201         }
202
203         if has_role('i18n.d.o') {
204                 ssl::service { 'i18n.debian.org': notify  => Exec['service apache2 reload'], key => true, }
205         }
206
207         if has_role('l10n.d.o') {
208                 ssl::service { 'l10n.debian.org': notify  => Exec['service apache2 reload'], key => true, }
209         }
210
211         if has_role('pet.d.n') {
212                 ssl::service { 'pet.debian.net': notify  => Exec['service apache2 reload'], key => true, }
213                 ssl::service { 'pet-devel.debian.net': notify  => Exec['service apache2 reload'], key => true, }
214         }
215
216         if has_role('ports_master') {
217                 include roles::ports_master
218         }
219         if has_role('ports_mirror') {
220                 include roles::ports_mirror
221         }
222
223         if has_role('onionbalance') {
224                 include onion::balance
225         }
226         if has_role('bgp') {
227                 include roles::bgp
228         }
229         if has_role('cdimage-search') {
230                 include roles::cdimage_search
231         }
232
233         if has_role('postgresql_server') {
234                 include postgres::backup_source
235         }
236
237         if has_role('bacula_director') {
238                 include bacula::director
239         } else {
240                 package { 'bacula-console': ensure => purged; }
241                 file { '/etc/bacula/bconsole.conf': ensure => absent; }
242         }
243         if has_role('bacula_storage') {
244                 include bacula::storage
245         }
246
247         if $::keyring_debian_org_mirror {
248                 include roles::keyring_debian_org_mirror
249         }
250
251         if has_role('popcon') {
252                 include roles::popcon
253         }
254
255         if has_role('debsources') {
256                 include roles::debsources
257         }
258 }