puppet-nova/manifests/rabbitmq.pp

76 lines
2.1 KiB
Puppet

# == Class: nova::rabbitmq
#
# Installs and manages rabbitmq server for nova
#
# == Parameters:
#
# [*userid*]
# (optional) The username to use when connecting to Rabbit
# Defaults to 'guest'
#
# [*password*]
# (optional) The password to use when connecting to Rabbit
# Defaults to 'guest'
#
# [*port*]
# (optional) Deprecated. The port to use when connecting to Rabbit
# This parameter keeps backward compatibility when we used to manage
# RabbitMQ service.
# Defaults to '5672'
#
# [*virtual_host*]
# (optional) The virtual host to use when connecting to Rabbit
# Defaults to '/'
#
# [*cluster_disk_nodes*]
# (optional) Enables/disables RabbitMQ clustering. Specify an array of Rabbit Broker
# IP addresses to configure clustering.
# Defaults to false
#
# [*enabled*]
# (optional) Deprecated. Whether to enable the Rabbit resources
# This parameter keeps backward compatibility when we used to manage
# RabbitMQ service.
# Defaults to true
#
class nova::rabbitmq(
$userid ='guest',
$password ='guest',
$virtual_host ='/',
# DEPRECATED PARAMETER
$cluster_disk_nodes = false,
$enabled = true,
$port ='5672',
) {
warning('nova::rabbitmq class is deprecated and will be removed in next release. Make other plans to configure rabbitmq resources.')
include ::nova::deps
if ($enabled) {
if $userid == 'guest' {
$delete_guest_user = false
} else {
$delete_guest_user = true
rabbitmq_user { $userid:
admin => true,
password => $password,
provider => 'rabbitmqctl',
}
# I need to figure out the appropriate permissions
rabbitmq_user_permissions { "${userid}@${virtual_host}":
configure_permission => '.*',
write_permission => '.*',
read_permission => '.*',
provider => 'rabbitmqctl',
}
}
rabbitmq_vhost { $virtual_host:
provider => 'rabbitmqctl',
}
}
# Only start Nova after the queue is up
Class['nova::rabbitmq'] -> Anchor['nova::service::end']
}