packstack/packstack/puppet/templates/amqp.pp

134 lines
3.1 KiB
Puppet

$amqp = '%(CONFIG_AMQP_BACKEND)s'
case $amqp {
'qpid': {
enable_qpid {"qpid":
enable_ssl => %(CONFIG_AMQP_ENABLE_SSL)s,
enable_auth => '%(CONFIG_AMQP_ENABLE_AUTH)s',
}
}
'rabbitmq': {
enable_rabbitmq {"rabbitmq":}
}
}
define enable_rabbitmq {
package { "erlang":
ensure => "installed"
}
class {"rabbitmq":
port => '%(CONFIG_AMQP_CLIENTS_PORT)s',
ssl_management_port => '%(CONFIG_AMQP_SSL_PORT)s',
ssl => %(CONFIG_AMQP_ENABLE_SSL)s,
ssl_cert => '%(CONFIG_AMQP_SSL_CERT_FILE)s',
ssl_key => '%(CONFIG_AMQP_SSL_KEY_FILE)s',
default_user => '%(CONFIG_AMQP_AUTH_USER)s',
default_pass => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
package_provider => 'yum',
admin_enable => false,
}
Package['erlang']->Class['rabbitmq']
}
define enable_qpid($enable_ssl = 'n', $enable_auth = 'n') {
case $::operatingsystem {
'Fedora': {
if (is_integer($::operatingsystemrelease) and $::operatingsystemrelease >= 20) or $::operatingsystemrelease == "Rawhide" {
$config = '/etc/qpid/qpidd.conf'
} else {
$config = '/etc/qpidd.conf'
}
}
'RedHat', 'CentOS': {
if $::operatingsystemrelease >= 7 {
$config = '/etc/qpid/qpidd.conf'
} else {
$config = '/etc/qpidd.conf'
}
}
default: {
$config = '/etc/qpidd.conf'
}
}
class {"qpid::server":
config_file => $config,
auth => $enable_auth ? {
'y' => 'yes',
default => 'no',
},
clustered => false,
ssl_port => '%(CONFIG_AMQP_SSL_PORT)s',
ssl => %(CONFIG_AMQP_ENABLE_SSL)s,
ssl_cert => '%(CONFIG_AMQP_SSL_CERT_FILE)s',
ssl_key => '%(CONFIG_AMQP_SSL_KEY_FILE)s',
ssl_database_password => '%(CONFIG_AMQP_NSS_CERTDB_PW)s',
}
if $enable_ssl {
enable_qpid_ssl {"qpid":}
}
if $enable_auth == 'y' {
add_qpid_user {"qpid_user":}
}
}
define enable_qpid_ssl {
# User and group for the nss database
group { 'qpidd':
ensure => 'present',
}
exec { 'stop_qpid' :
command => '/sbin/service qpidd stop',
onlyif => '/sbin/service qpidd status',
}
user { 'qpidd':
ensure => 'present',
managehome => true,
home => '/var/run/qpidd',
gid => 'qpidd',
before => Class['qpid::server']
}
Exec['stop_qpid']->User['qpidd']
file { 'pid_dir':
path => '/var/run/qpidd',
ensure => directory,
owner => 'qpidd',
group => 'qpidd',
require => User['qpidd'],
}
file_line { 'pid_dir_conf':
path => $qpid::server::config_file,
line => 'pid-dir=/var/run/qpidd',
require => File['pid_dir'],
}
}
define add_qpid_user {
qpid_user { '%(CONFIG_AMQP_AUTH_USER)s':
password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
file => '/var/lib/qpidd/qpidd.sasldb',
realm => 'AMQP',
provider => 'saslpasswd2',
require => Class['qpid::server'],
}
file { 'sasldb_file':
path => '/var/lib/qpidd/qpidd.sasldb',
ensure => file,
owner => 'qpidd',
group => 'qpidd',
}
}