2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'manifests/middleware/rabbitmq.pp', line 2
class mcollective::middleware::rabbitmq {
if $caller_module_name != $module_name {
fail("Use of private class ${name} by ${caller_module_name}")
}
if $mcollective::middleware_ssl {
file { "${mcollective::rabbitmq_confdir}/ca.pem":
owner => 'rabbitmq',
group => 'rabbitmq',
mode => '0444',
source => $mcollective::ssl_ca_cert,
}
file { "${mcollective::rabbitmq_confdir}/server_public.pem":
owner => 'rabbitmq',
group => 'rabbitmq',
mode => '0444',
source => $mcollective::ssl_server_public,
}
file { "${mcollective::rabbitmq_confdir}/server_private.pem":
owner => 'rabbitmq',
group => 'rabbitmq',
mode => '0400',
source => $mcollective::ssl_server_private,
}
}
anchor { 'mcollective::middleware::rabbitmq::start': }
class { '::rabbitmq':
config_stomp => true,
delete_guest_user => $mcollective::delete_guest_user,
ssl => $mcollective::middleware_ssl,
stomp_port => $mcollective::middleware_port,
ssl_stomp_port => $mcollective::middleware_ssl_port,
ssl_cacert => "${mcollective::rabbitmq_confdir}/ca.pem",
ssl_cert => "${mcollective::rabbitmq_confdir}/server_public.pem",
ssl_key => "${mcollective::rabbitmq_confdir}/server_private.pem",
} ->
rabbitmq_plugin { 'rabbitmq_stomp':
ensure => present,
} ->
rabbitmq_vhost { $mcollective::rabbitmq_vhost:
ensure => present,
} ->
rabbitmq_user { $mcollective::middleware_user:
ensure => present,
admin => false,
password => $mcollective::middleware_password,
} ->
rabbitmq_user { $mcollective::middleware_admin_user:
ensure => present,
admin => true,
password => $mcollective::middleware_admin_password,
} ->
rabbitmq_user_permissions { "${mcollective::middleware_user}@${mcollective::rabbitmq_vhost}":
configure_permission => '.*',
read_permission => '.*',
write_permission => '.*',
} ->
rabbitmq_user_permissions { "${mcollective::middleware_admin_user}@${mcollective::rabbitmq_vhost}":
configure_permission => '.*',
} ->
rabbitmq_exchange { "mcollective_broadcast@${mcollective::rabbitmq_vhost}":
ensure => present,
type => 'topic',
user => $mcollective::middleware_admin_user,
password => $mcollective::middleware_admin_password,
} ->
rabbitmq_exchange { "mcollective_directed@${mcollective::rabbitmq_vhost}":
ensure => present,
type => 'direct',
user => $mcollective::middleware_admin_user,
password => $mcollective::middleware_admin_password,
} ->
anchor { 'mcollective::middleware::rabbitmq::end': }
}
|