]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/rabbitmq/manifests/init.pp
try if downgrading to 1.2.2 solves my problem
[dsa-puppet.git] / modules / rabbitmq / manifests / init.pp
1 # == Class: rabbitmq
2 #
3 # Top level class for all things rabbitmq
4 #
5 class rabbitmq (
6         $cluster=false,
7         $clustermembers=[],
8         $clustercookie='',
9         $delete_guest_user=false,
10         $rabbit_num_ofiles=4096,
11         $master=''
12 ) {
13         include rabbitmq::config
14
15         package { 'rabbitmq-server':
16                 ensure  => installed,
17         }
18
19         service { 'rabbitmq-server':
20                 ensure  => running,
21                 enable  => true,
22                 require => Package['rabbitmq-server']
23         }
24
25         Service['rabbitmq-server'] -> Rabbitmq_user <| |>
26         Service['rabbitmq-server'] -> Rabbitmq_vhost <| |>
27         Service['rabbitmq-server'] -> Rabbitmq_user_permissions <| |>
28
29         concat::fragment { 'rabbitmq_main_conf':
30                 target  => '/etc/rabbitmq/rabbitmq.config',
31                 order   => 00,
32                 content => template('rabbitmq/rabbitmq.conf.erb'),
33         }
34
35         concat::fragment { 'rabbit_foot':
36                 target  => '/etc/rabbitmq/rabbitmq.config',
37                 order   => 50,
38                 content => "]}\n"
39         }
40
41         concat::fragment { 'rabbitmq_conf_foot':
42                 target  => '/etc/rabbitmq/rabbitmq.config',
43                 order   => 99,
44                 content => "].\n"
45         }
46
47         file { '/etc/default/rabbitmq-server':
48                 content => template('rabbitmq/rabbitmq.ulimit.erb'),
49                 notify  => Service['rabbitmq-server']
50         }
51
52         if $cluster {
53                 if $clustercookie {
54                         file { '/var/lib/rabbitmq':
55                                 ensure => directory,
56                                 mode   => '0755',
57                                 owner  => rabbitmq,
58                                 group  => rabbitmq,
59                         }
60
61                         file { '/var/lib/rabbitmq/.erlang.cookie':
62                                 content => $clustercookie,
63                                 mode    => '0500',
64                                 owner   => rabbitmq,
65                                 group   => rabbitmq,
66                                 before  => Package['rabbitmq-server'],
67                                 notify  => Service['rabbitmq-server']
68                         }
69                 }
70
71                 if $::hostname != $master {
72                         exec { 'reset_mq':
73                                 command => 'rabbitmqctl stop_app && rabbitmqctl reset > /var/lib/rabbitmq/.node_reset',
74                                 path    => '/usr/bin:/bin:/usr/sbin:/sbin',
75                                 creates => '/var/lib/rabbitmq/.node_reset',
76                                 require => Package['rabbitmq-server'],
77                                 notify  => Service['rabbitmq-server']
78                         }
79                         Exec['reset_mq'] -> Rabbitmq_user <| |>
80                         Exec['reset_mq'] -> Rabbitmq_vhost <| |>
81                         Exec['reset_mq'] -> Rabbitmq_user_permissions <| |>
82                 }
83         }
84
85         if $delete_guest_user {
86                 rabbitmq_user { 'guest':
87                         ensure   => absent,
88                         provider => 'rabbitmqctl',
89                 }
90         }
91
92         site::limit { 'rabbitmq_openfiles':
93                 limit_user  => rabbitmq,
94                 limit_value => $rabbit_num_ofiles,
95                 notify      => Service['rabbitmq-server']
96         }
97 }