debtags -> 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('postgres_backup_server') {
123                 include postgres::backup_server
124         }
125
126         if has_role('packages') {
127                 ssl::service { 'packages.debian.org': notify  => Exec['service apache2 reload'], key => true, }
128         }
129
130         if has_role('historicalpackages') {
131                 ssl::service { 'historical.packages.debian.org': notify  => Exec['service apache2 reload'], key => true, }
132         }
133
134         if has_role('qamaster') {
135                 ssl::service { 'qa.debian.org': notify  => Exec['service apache2 reload'], key => true, }
136         }
137
138         if has_role('packagesqamaster') {
139                 ssl::service { 'packages.qa.debian.org': notify  => Exec['service apache2 reload'], key => true, }
140         }
141
142         if has_role('gobby_debian_org') {
143                 ssl::service { 'gobby.debian.org':
144                         notify  => [ Exec['service apache2 reload'], Exec['reload gobby'] ],
145                         key => true,
146                         tlsaport => [443, 6523],
147                 }
148                 file { '/etc/ssl/debian-local/other-keys/gobby.debian.org.key':
149                         ensure => present,
150                         mode => '0440',
151                         group => 'gobby',
152                         content => inline_template('<%= File.read(scope().call_function("hiera", ["paths.letsencrypt_dir"]) + "/gobby.debian.org.key") %>'),
153                         links => follow,
154                         notify => Exec['reload gobby'],
155                 }
156                 exec { 'reload gobby':
157                         command => 'pkill -u gobby -HUP -x infinoted',
158                         refreshonly => true,
159                 }
160         }
161
162         if has_role('search_backend') {
163                 include roles::search_backend
164         }
165         if has_role('search_frontend') {
166                 include roles::search_frontend
167         }
168
169         if has_role('dgit_browse') {
170                 include roles::dgit_browse
171         }
172         if has_role('dgit_git') {
173                 include roles::dgit_git
174         }
175
176         if $::hostname in [lw01, lw02, lw03, lw04, lw09, lw10] {
177                 include roles::snapshot
178         }
179
180         if has_role('snapshot_web') {
181                 include roles::snapshot_web
182         }
183
184         if has_role('snapshot_shell') {
185                 include roles::snapshot_shell
186         }
187
188         if has_role('planet_master') {
189                 include roles::planet_master
190         }
191         if has_role('planet_search') {
192                 ssl::service { 'planet-search.debian.org': notify  => Exec['service apache2 reload'], key => true, }
193         }
194
195         if has_role('i18n.d.o') {
196                 ssl::service { 'i18n.debian.org': notify  => Exec['service apache2 reload'], key => true, }
197         }
198
199         if has_role('l10n.d.o') {
200                 ssl::service { 'l10n.debian.org': notify  => Exec['service apache2 reload'], key => true, }
201         }
202
203         if has_role('pet.d.n') {
204                 ssl::service { 'pet.debian.net': notify  => Exec['service apache2 reload'], key => true, }
205                 ssl::service { 'pet-devel.debian.net': notify  => Exec['service apache2 reload'], key => true, }
206         }
207
208         if has_role('ports_master') {
209                 include roles::ports_master
210         }
211         if has_role('ports_mirror') {
212                 include roles::ports_mirror
213         }
214
215         if has_role('onionbalance') {
216                 include onion::balance
217         }
218         if has_role('bgp') {
219                 include roles::bgp
220         }
221         if has_role('cdimage-search') {
222                 include roles::cdimage_search
223         }
224
225         if has_role('postgresql_server') {
226                 include postgres::backup_source
227         }
228
229         if has_role('bacula_director') {
230                 include bacula::director
231         } else {
232                 package { 'bacula-console': ensure => purged; }
233                 file { '/etc/bacula/bconsole.conf': ensure => absent; }
234         }
235         if has_role('bacula_storage') {
236                 include bacula::storage
237         }
238
239         if $::keyring_debian_org_mirror {
240                 include roles::keyring_debian_org_mirror
241         }
242
243         if has_role('popcon') {
244                 include roles::popcon
245         }
246
247         if has_role('debsources') {
248                 include roles::debsources
249         }
250 }