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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'modules/rabbitmq/manifests/init.pp', line 19
class rabbitmq(
$running = true,
$file_handles = '1024',
$erlang_cookie = '',
Integer $heartbeat_timeout = 60,
Optional[Stdlib::Unixpath] $tls_key_file = undef,
Optional[Stdlib::Unixpath] $tls_cert_file = undef,
Optional[Stdlib::Unixpath] $tls_ca_file = undef,
) {
package { [ 'rabbitmq-server' ]:
ensure => 'present',
}
file { '/etc/default/rabbitmq-server':
ensure => 'present',
owner => 'root',
group => 'root',
mode => '0444',
content => template('rabbitmq/rabbitmq-server.default.erb'),
require => Package['rabbitmq-server'],
notify => Service['rabbitmq-server'],
}
file { '/usr/local/sbin/rabbitmqadmin':
ensure => 'present',
owner => 'root',
group => 'root',
mode => '0655',
source => 'puppet:///modules/rabbitmq/rabbitmqadmin.py',
require => Package['rabbitmq-server'],
}
file { '/etc/rabbitmq/rabbitmq.config':
ensure => 'present',
owner => 'root',
group => 'root',
mode => '0444',
content => epp(
'rabbitmq/rabbitmq.config.epp',
{
'heartbeat_timeout' => $heartbeat_timeout,
'tls_key_file' => $tls_key_file,
'tls_cert_file' => $tls_cert_file,
'tls_ca_file' =>$tls_ca_file,
}
),
require => Package['rabbitmq-server'],
notify => Service['rabbitmq-server'],
}
file {'/usr/local/sbin/rabbit_random_guest':
ensure => 'present',
owner => 'root',
group => 'root',
mode => '0655',
source => 'puppet:///modules/rabbitmq/rabbit_random_guest.sh',
require => Package['rabbitmq-server'],
}
# For multi-node setups, the two servers need to share
# this secret string. For single-node setups
# we can just let rabbit generate whatever.
if $erlang_cookie {
file { '/var/lib/rabbitmq/.erlang.cookie':
ensure => 'present',
owner => 'rabbitmq',
group => 'rabbitmq',
mode => '0400',
content => $erlang_cookie,
require => Package['rabbitmq-server'],
}
}
exec { 'invalidate_rabbitmq_guest_account':
command => '/usr/local/sbin/rabbit_random_guest',
subscribe => File['/usr/local/sbin/rabbit_random_guest'],
refreshonly => true,
}
service { 'rabbitmq-server':
ensure => $running,
require => Package['rabbitmq-server'],
}
}
|