tested support for 2.7.1 plugins and updated documentation
This commit is contained in:
parent
fbf180804b
commit
4f7c4a7720
@ -65,3 +65,13 @@ rabbitmq_user_permissions { 'dan@myhost':
|
|||||||
write_permission => '.*',
|
write_permission => '.*',
|
||||||
provider => 'rabbitmqctl',
|
provider => 'rabbitmqctl',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rabbitmq_plugin
|
||||||
|
|
||||||
|
- query all currently enabled plugins
|
||||||
|
#>puppet resource rabbitmq_plugin
|
||||||
|
|
||||||
|
rabbitmq_plugin {'rabbitmq_stomp':
|
||||||
|
ensure => present,
|
||||||
|
provider => 'rabbitmqplugins',
|
||||||
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
Puppet::Type.type(:rabbitmq_plugin).provide(:rabbitmq-plugins) do
|
Puppet::Type.type(:rabbitmq_plugin).provide(:rabbitmqplugins) do
|
||||||
|
|
||||||
commands :rabbitmq-plugins => 'rabbitmq-plugins'
|
commands :rabbitmqplugins => 'rabbitmq-plugins'
|
||||||
defaultfor :feature => :posix
|
defaultfor :feature => :posix
|
||||||
|
|
||||||
def self.instances
|
def self.instances
|
||||||
rabbitmq-plugins('list -e').split(/\n/).map do |line|
|
rabbitmqplugins('list', '-e').split(/\n/).map do |line|
|
||||||
if line.split(/\s+/)[1] =~ /^(\S+)$/
|
if line.split(/\s+/)[1] =~ /^(\S+)$/
|
||||||
new(:name => $1)
|
new(:name => $1)
|
||||||
else
|
else
|
||||||
@ -14,15 +14,15 @@ Puppet::Type.type(:rabbitmq_plugin).provide(:rabbitmq-plugins) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
rabbitmq-plugins('enable', resource[:name])
|
rabbitmqplugins('enable', resource[:name])
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
rabbitmq-plugins('disable', resource[:name])
|
rabbitmqplugins('disable', resource[:name])
|
||||||
end
|
end
|
||||||
|
|
||||||
def exists?
|
def exists?
|
||||||
out = rabbitmq-plugins('list -e').split(/\n/).detect do |line|
|
out = rabbitmqplugins('list', '-e').split(/\n/).detect do |line|
|
||||||
line.split(/\s+/)[1].match(/^#{resource[:name]}$/)
|
line.split(/\s+/)[1].match(/^#{resource[:name]}$/)
|
||||||
end
|
end
|
||||||
end
|
end
|
@ -1,41 +0,0 @@
|
|||||||
# Define: rabbitmq::plugin
|
|
||||||
#
|
|
||||||
# This defined resource type manages plugins for RabbitMQ
|
|
||||||
#
|
|
||||||
# NOTE: It is reommended to use packages to manage plugins if at all
|
|
||||||
# possible. There are packages for stomp and amqp available in the prosvc
|
|
||||||
# repository at http://yum.puppetlabs.com/prosvc/
|
|
||||||
#
|
|
||||||
# Parameters:
|
|
||||||
#
|
|
||||||
# Actions:
|
|
||||||
#
|
|
||||||
# Requires:
|
|
||||||
#
|
|
||||||
# Sample Usage:
|
|
||||||
#
|
|
||||||
define rabbitmq::plugin( $ensure=present, $source='UNSET') {
|
|
||||||
|
|
||||||
$plugin_dir = $::rabbitmq::server::plugin_dir
|
|
||||||
|
|
||||||
if $source == 'UNSET' {
|
|
||||||
$source_real = "puppet:///modules/rabbitmq/plugins/${name}"
|
|
||||||
} else {
|
|
||||||
validate_re($source, '^(/|puppet://)')
|
|
||||||
$source_real = $source
|
|
||||||
}
|
|
||||||
|
|
||||||
validate_re($ensure, '^(present|absent)$')
|
|
||||||
$ensure_real = $ensure
|
|
||||||
|
|
||||||
file { "${plugin_dir}/${name}":
|
|
||||||
ensure => $ensure_real,
|
|
||||||
source => $source_real,
|
|
||||||
owner => '0',
|
|
||||||
group => '0',
|
|
||||||
mode => '0644',
|
|
||||||
require => Class['rabbitmq'],
|
|
||||||
notify => Class['rabbitmq::service'],
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -9,9 +9,7 @@
|
|||||||
# [*package_name*] - name of rabbitmq package
|
# [*package_name*] - name of rabbitmq package
|
||||||
# [*service_name*] - name of rabbitmq service
|
# [*service_name*] - name of rabbitmq service
|
||||||
# [*service_ensure*] - desired ensure state for service
|
# [*service_ensure*] - desired ensure state for service
|
||||||
# [*install_stomp*] - whether to install stomp (required for mcollective)
|
|
||||||
# [*stomp_port*] - port stomp should be listening on
|
# [*stomp_port*] - port stomp should be listening on
|
||||||
# [*stomp_package*] - package name to install stomp
|
|
||||||
# [*config*] - contents of config file
|
# [*config*] - contents of config file
|
||||||
# [*env_config*] - contents of env-config file
|
# [*env_config*] - contents of env-config file
|
||||||
# Requires:
|
# Requires:
|
||||||
@ -29,15 +27,13 @@ class rabbitmq::server(
|
|||||||
$version = 'UNSET',
|
$version = 'UNSET',
|
||||||
$service_name = 'rabbitmq-server',
|
$service_name = 'rabbitmq-server',
|
||||||
$service_ensure = 'running',
|
$service_ensure = 'running',
|
||||||
$install_stomp = false,
|
|
||||||
$config_stomp = false,
|
$config_stomp = false,
|
||||||
$stomp_port = '6163',
|
$stomp_port = '6163',
|
||||||
$stomp_package = 'rabbitmq-plugin-stomp',
|
|
||||||
$config='UNSET',
|
$config='UNSET',
|
||||||
$env_config='UNSET'
|
$env_config='UNSET'
|
||||||
) {
|
) {
|
||||||
|
|
||||||
validate_bool($delete_guest_user, $install_stomp, $config_stomp)
|
validate_bool($delete_guest_user, $config_stomp)
|
||||||
validate_re($port, '\d+')
|
validate_re($port, '\d+')
|
||||||
validate_re($stomp_port, '\d+')
|
validate_re($stomp_port, '\d+')
|
||||||
|
|
||||||
@ -66,15 +62,6 @@ class rabbitmq::server(
|
|||||||
notify => Class['rabbitmq::service'],
|
notify => Class['rabbitmq::service'],
|
||||||
}
|
}
|
||||||
|
|
||||||
if $install_stomp {
|
|
||||||
package { $stomp_package:
|
|
||||||
ensure => installed,
|
|
||||||
notify => Class['rabbitmq::service'],
|
|
||||||
before => File['rabbitmq.config'],
|
|
||||||
}
|
|
||||||
$config_stomp = true
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/rabbitmq':
|
file { '/etc/rabbitmq':
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
owner => '0',
|
owner => '0',
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
$rabbitmq_plugins = [ 'amqp_client-2.3.1.ez', 'rabbit_stomp-2.3.1.ez' ]
|
|
||||||
class { 'rabbitmq::server':
|
class { 'rabbitmq::server':
|
||||||
install_stomp => true,
|
config_stomp => true,
|
||||||
}
|
}
|
||||||
|
|
||||||
rabbitmq::plugin { $rabbitmq_plugins:
|
$rabbitmq_plugins = [ 'amqp_client', 'rabbitmq_stomp' ]
|
||||||
|
|
||||||
|
rabbitmq_plugin { $rabbitmq_plugins:
|
||||||
ensure => present,
|
ensure => present,
|
||||||
require => Class['rabbitmq']
|
require => Class['rabbitmq::server'],
|
||||||
|
provider => 'rabbitmqplugins',
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
node default {
|
node default {
|
||||||
|
|
||||||
$rabbitmq_plugins = [ 'amqp_client-2.3.1.ez', 'rabbit_stomp-2.3.1.ez' ]
|
$rabbitmq_plugins = [ 'amqp_client', 'rabbitmq_stomp' ]
|
||||||
|
|
||||||
class { 'rabbitmq::server':
|
class { 'rabbitmq::server':
|
||||||
config => '[ {rabbit_stomp, [{tcp_listeners, [1234]} ]} ].',
|
config => '[ {rabbit_stomp, [{tcp_listeners, [1234]} ]} ].',
|
||||||
}
|
}
|
||||||
|
|
||||||
# Required for MCollective
|
# Required for MCollective
|
||||||
rabbitmq::plugin { $rabbitmq_plugins:
|
rabbitmq_plugin { $rabbitmq_plugins:
|
||||||
ensure => present,
|
ensure => present,
|
||||||
|
require => Class['rabbitmq::server'],
|
||||||
|
provider => 'rabbitmqplugins',
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user