]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/roles/manifests/pubsub/entities.pp
er, this should be a variable
[dsa-puppet.git] / modules / roles / manifests / pubsub / entities.pp
1 # = Class: roles::pubsub::entities
2 #
3 # MQ users, vhosts, policies, and permissions for pubsub hosts
4 #
5 # == Sample Usage:
6 #
7 #   include roles::pubsub::entities
8 #
9 class roles::pubsub::entities {
10         include roles::pubsub::params
11
12         $admin_password   = $roles::pubsub::params::admin_password
13         $ftp_password     = $roles::pubsub::params::ftp_password
14         $buildd_password  = $roles::pubsub::params::buildd_password
15         $wbadm_password   = $roles::pubsub::params::wbadm_password
16         $mailadm_password = $roles::pubsub::params::mailadm_password
17         $mailly_password  = $roles::pubsub::params::mailly_password
18         $muffat_password  = $roles::pubsub::params::muffat_password
19         $pet_password     = $roles::pubsub::params::pet_password
20
21         rabbitmq_user { 'admin':
22                 admin    => true,
23                 password => $admin_password,
24                 provider => 'rabbitmqctl',
25         }
26
27         rabbitmq_user { 'ftpteam':
28                 admin    => false,
29                 password => $ftp_password,
30                 provider => 'rabbitmqctl',
31         }
32
33         rabbitmq_user { 'buildd':
34                 admin    => false,
35                 password => $buildd_password,
36                 provider => 'rabbitmqctl',
37         }
38
39         rabbitmq_user { 'wbadm':
40                 admin    => false,
41                 password => $wbadm_password,
42                 provider => 'rabbitmqctl',
43         }
44
45         rabbitmq_user { 'mailadm':
46                 admin    => false,
47                 password => $mailadm_password,
48                 provider => 'rabbitmqctl',
49         }
50
51         rabbitmq_user { 'mailly':
52                 admin    => false,
53                 password => $mailly_password,
54                 provider => 'rabbitmqctl',
55         }
56
57         rabbitmq_user { 'muffat':
58                 admin    => false,
59                 password => $muffat_password,
60                 provider => 'rabbitmqctl',
61         }
62
63         rabbitmq_user { 'pet-devel':
64                 admin    => false,
65                 password => $pet_password,
66                 provider => 'rabbitmqctl',
67         }
68
69         $do_hosts = keys($site::localinfo)
70
71         rabbitmq::autouser { $do_hosts: }
72
73         rabbitmq_vhost { 'packages':
74                 ensure   => present,
75                 provider => 'rabbitmqctl',
76         }
77
78         rabbitmq_vhost { 'buildd':
79                 ensure   => present,
80                 provider => 'rabbitmqctl',
81         }
82
83         rabbitmq_vhost { 'dsa':
84                 ensure   => present,
85                 provider => 'rabbitmqctl',
86         }
87
88         rabbitmq_vhost { 'pet':
89                 ensure   => present,
90                 provider => 'rabbitmqctl',
91         }
92
93         rabbitmq_user_permissions { 'admin@/':
94                 configure_permission => '.*',
95                 read_permission      => '.*',
96                 write_permission     => '.*',
97                 provider             => 'rabbitmqctl',
98                 require              => Rabbitmq_user['admin']
99         }
100
101         rabbitmq_user_permissions { 'admin@buildd':
102                 configure_permission => '.*',
103                 read_permission      => '.*',
104                 write_permission     => '.*',
105                 provider             => 'rabbitmqctl',
106                 require              => [
107                         Rabbitmq_user['admin'],
108                         Rabbitmq_vhost['buildd']
109                 ]
110         }
111
112         rabbitmq_user_permissions { 'admin@dsa':
113                 configure_permission => '.*',
114                 read_permission      => '.*',
115                 write_permission     => '.*',
116                 provider             => 'rabbitmqctl',
117                 require              => [
118                         Rabbitmq_user['admin'],
119                         Rabbitmq_vhost['dsa']
120                 ]
121         }
122
123         rabbitmq_user_permissions { 'admin@packages':
124                 configure_permission => '.*',
125                 read_permission      => '.*',
126                 write_permission     => '.*',
127                 provider             => 'rabbitmqctl',
128                 require              => [
129                         Rabbitmq_user['admin'],
130                         Rabbitmq_vhost['packages']
131                 ]
132         }
133
134         rabbitmq_user_permissions { 'admin@pet':
135                 configure_permission => '.*',
136                 read_permission      => '.*',
137                 write_permission     => '.*',
138                 provider             => 'rabbitmqctl',
139                 require              => [
140                         Rabbitmq_user['admin'],
141                         Rabbitmq_vhost['pet']
142                 ]
143         }
144
145         rabbitmq_user_permissions { 'ftpteam@packages':
146                 configure_permission => '.*',
147                 read_permission      => '.*',
148                 write_permission     => '.*',
149                 provider             => 'rabbitmqctl',
150                 require              => [
151                         Rabbitmq_user['ftpteam'],
152                         Rabbitmq_vhost['packages']
153                 ]
154         }
155
156         rabbitmq_user_permissions { 'wbadm@packages':
157                 read_permission      => 'unchecked',
158                 write_permission     => 'wbadm',
159                 provider             => 'rabbitmqctl',
160                 require              => [
161                         Rabbitmq_user['wbadm'],
162                         Rabbitmq_vhost['packages']
163                 ]
164         }
165
166         rabbitmq_user_permissions { 'buildd@buildd':
167                 configure_permission => '.*',
168                 read_permission      => '.*',
169                 write_permission     => '.*',
170                 provider             => 'rabbitmqctl',
171                 require              => [
172                         Rabbitmq_user['buildd'],
173                         Rabbitmq_vhost['buildd']
174                 ]
175         }
176
177         rabbitmq_user_permissions { 'wbadm@buildd':
178                 configure_permission => '.*',
179                 read_permission      => '.*',
180                 write_permission     => '.*',
181                 provider             => 'rabbitmqctl',
182                 require              => [
183                         Rabbitmq_user['wbadm'],
184                         Rabbitmq_vhost['buildd']
185                 ]
186         }
187
188         rabbitmq_user_permissions { 'mailadm@dsa':
189                 configure_permission => '.*',
190                 read_permission      => '.*',
191                 write_permission     => '.*',
192                 provider             => 'rabbitmqctl',
193                 require              => [
194                         Rabbitmq_user['mailadm'],
195                         Rabbitmq_vhost['dsa']
196                 ]
197         }
198
199         rabbitmq_user_permissions { 'mailly@dsa':
200                 configure_permission => '.*',
201                 read_permission      => '.*',
202                 write_permission     => '.*',
203                 provider             => 'rabbitmqctl',
204                 require              => [
205                         Rabbitmq_user['mailly'],
206                         Rabbitmq_vhost['dsa']
207                 ]
208         }
209
210         rabbitmq_user_permissions { 'muffat@dsa':
211                 configure_permission => '.*',
212                 read_permission      => '.*',
213                 write_permission     => '.*',
214                 provider             => 'rabbitmqctl',
215                 require              => [
216                         Rabbitmq_user['muffat'],
217                         Rabbitmq_vhost['dsa']
218                 ]
219         }
220
221         rabbitmq_user_permissions { 'pet-devel@pet':
222                 configure_permission => '.*',
223                 read_permission      => '.*',
224                 write_permission     => '.*',
225                 provider             => 'rabbitmqctl',
226                 require              => [
227                         Rabbitmq_user['pet-devel'],
228                         Rabbitmq_vhost['pet']
229                 ]
230         }
231
232         rabbitmq_policy { 'mirror-dsa':
233                 vhost   => 'dsa',
234                 match   => '.*',
235                 policy  => '{"ha-mode":"all"}',
236                 require => Rabbitmq_vhost['dsa']
237         }
238
239         rabbitmq_policy { 'mirror-buildd':
240                 vhost   => 'buildd',
241                 match   => '.*',
242                 policy  => '{"ha-mode":"all"}',
243                 require => Rabbitmq_vhost['buildd']
244         }
245
246         rabbitmq_policy { 'mirror-packages':
247                 vhost   => 'packages',
248                 match   => '.*',
249                 policy  => '{"ha-mode":"all"}',
250                 require => Rabbitmq_vhost['packages']
251         }
252
253         rabbitmq_policy { 'mirror_pet':
254                 vhost   => 'pet',
255                 match   => '.*',
256                 policy  => '{"ha-mode":"all"}',
257                 require => Rabbitmq_vhost['pet']
258         }
259
260         rabbitmq_plugin { 'rabbitmq_management':
261                 ensure   => present,
262                 provider => 'rabbitmqplugins',
263                 require  => Package['rabbitmq-server'],
264                 notify   => Service['rabbitmq-server']
265         }
266         rabbitmq_plugin { 'rabbitmq_management_agent':
267                 ensure   => present,
268                 provider => 'rabbitmqplugins',
269                 require  => Package['rabbitmq-server'],
270                 notify   => Service['rabbitmq-server']
271         }
272         rabbitmq_plugin { 'rabbitmq_tracing':
273                 ensure   => present,
274                 provider => 'rabbitmqplugins',
275                 require  => Package['rabbitmq-server'],
276                 notify   => Service['rabbitmq-server']
277         }
278         rabbitmq_plugin { 'rabbitmq_management_visualiser':
279                 ensure   => present,
280                 provider => 'rabbitmqplugins',
281                 require  => Package['rabbitmq-server'],
282                 notify   => Service['rabbitmq-server']
283         }
284
285 }