Add RabbitMQ as option for Qpid

Adds the rabbitmq puppet module and configures
all the plugins to use it.

Change-Id: I5e25ec75689aaf63b8c3938fbe845785b964b7fb
This commit is contained in:
Ivan Chavero 2014-02-19 14:15:55 -07:00
parent e34b032c9e
commit 35f2526338
34 changed files with 384 additions and 251 deletions

View File

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
def get_mq(config, plugin):
return plugin + "_%s.pp" % config.get('CONFIG_AMQP_SERVER')

View File

@ -1,5 +1,5 @@
"""
Installs and configures qpid
Installs and configures amqp
"""
import logging
@ -19,7 +19,7 @@ from packstack.modules.ospluginutils import gethostlist,\
controller = None
# Plugin name
PLUGIN_NAME = "OS-QPID"
PLUGIN_NAME = "OS-AMQP"
PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
logging.debug("plugin %s loaded", __name__)
@ -27,52 +27,62 @@ logging.debug("plugin %s loaded", __name__)
def initConfig(controllerObject):
global controller
controller = controllerObject
logging.debug("Adding OpenStack QPID configuration")
logging.debug("Adding OpenStack AMQP configuration")
paramsList = [
{"CMD_OPTION" : "qpid-host",
"USAGE" : "The IP address of the server on which to install the QPID service",
"PROMPT" : "Enter the IP address of the QPID service",
{"CMD_OPTION" : "amqp-server",
"USAGE" : "Set the server for the AMQP service",
"PROMPT" : "Set the server for the AMQP service (qpid, rabbitmq)? ",
"OPTION_LIST" : ["qpid", "rabbitmq"],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "qpid",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
"CONF_NAME" : "CONFIG_AMQP_SERVER",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "amqp-host",
"USAGE" : "The IP address of the server on which to install the AMQP service",
"PROMPT" : "Enter the IP address of the AMQP service",
"OPTION_LIST" : [],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.get_localhost_ip(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
"CONF_NAME" : "CONFIG_QPID_HOST",
"CONF_NAME" : "CONFIG_AMQP_HOST",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "qpid-enable-ssl",
"USAGE" : "Enable SSL for the QPID service",
"PROMPT" : "Enable SSL for the QPID service?",
{"CMD_OPTION" : "amqp-enable-ssl",
"USAGE" : "Enable SSL for the AMQP service",
"PROMPT" : "Enable SSL for the AMQP service?",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "n",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
"CONF_NAME" : "CONFIG_QPID_ENABLE_SSL",
"CONF_NAME" : "CONFIG_AMQP_ENABLE_SSL",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "qpid-enable-auth",
"USAGE" : "Enable Authentication for the QPID service",
"PROMPT" : "Enable Authentication for the QPID service?",
{"CMD_OPTION" : "amqp-enable-auth",
"USAGE" : "Enable Authentication for the AMQP service",
"PROMPT" : "Enable Authentication for the AMQP service?",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "n",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
"CONF_NAME" : "CONFIG_QPID_ENABLE_AUTH",
"CONF_NAME" : "CONFIG_AMQP_ENABLE_AUTH",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
]
groupDict = { "GROUP_NAME" : "QPIDLANCE",
"DESCRIPTION" : "QPID Config parameters",
"PRE_CONDITION" : check_enabled,
groupDict = { "GROUP_NAME" : "AMQPLANCE",
"DESCRIPTION" : "AMQP Config parameters",
"PRE_CONDITION" : False,
"PRE_CONDITION_MATCH" : True,
"POST_CONDITION" : False,
"POST_CONDITION_MATCH" : True}
@ -80,55 +90,55 @@ def initConfig(controllerObject):
controller.addGroup(groupDict, paramsList)
paramsList = [
{"CMD_OPTION" : "qpid-nss-certdb-pw",
"USAGE" : "The password for the NSS certificate database of the QPID service",
{"CMD_OPTION" : "amqp-nss-certdb-pw",
"USAGE" : "The password for the NSS certificate database of the AMQP service",
"PROMPT" : "Enter the password for NSS certificate database",
"OPTION_LIST" : [],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:32],
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
"CONF_NAME" : "CONFIG_QPID_NSS_CERTDB_PW",
"CONF_NAME" : "CONFIG_AMQP_NSS_CERTDB_PW",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "qpid-ssl-port",
"USAGE" : "The port in which the QPID service listens to SSL connections",
"PROMPT" : "Enter the SSL port for the QPID service",
{"CMD_OPTION" : "amqp-ssl-port",
"USAGE" : "The port in which the AMQP service listens to SSL connections",
"PROMPT" : "Enter the SSL port for the AMQP service",
"OPTION_LIST" : [],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : "5671",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
"CONF_NAME" : "CONFIG_QPID_SSL_PORT",
"CONF_NAME" : "CONFIG_AMQP_SSL_PORT",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "qpid-ssl-cert-file",
"USAGE" : "The filename of the certificate that the QPID service is going to use",
"PROMPT" : "Enter the filename of the SSL certificate for the QPID service",
{"CMD_OPTION" : "amqp-ssl-cert-file",
"USAGE" : "The filename of the certificate that the AMQP service is going to use",
"PROMPT" : "Enter the filename of the SSL certificate for the AMQP service",
"OPTION_LIST" : [],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : "/etc/pki/tls/certs/qpid_selfcert.pem",
"DEFAULT_VALUE" : "/etc/pki/tls/certs/amqp_selfcert.pem",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
"CONF_NAME" : "CONFIG_QPID_SSL_CERT_FILE",
"CONF_NAME" : "CONFIG_AMQP_SSL_CERT_FILE",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "qpid-ssl-key-file",
"USAGE" : "The filename of the private key that the QPID service is going to use",
{"CMD_OPTION" : "amqp-ssl-key-file",
"USAGE" : "The filename of the private key that the AMQP service is going to use",
"PROMPT" : "Enter the private key filename",
"OPTION_LIST" : [],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : "/etc/pki/tls/private/qpid_selfkey.pem",
"DEFAULT_VALUE" : "/etc/pki/tls/private/amqp_selfkey.pem",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
"CONF_NAME" : "CONFIG_QPID_SSL_KEY_FILE",
"CONF_NAME" : "CONFIG_AMQP_SSL_KEY_FILE",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "qpid-ssl-self-signed",
{"CMD_OPTION" : "amqp-ssl-self-signed",
"USAGE" : "Auto Generates self signed SSL certificate and key",
"PROMPT" : "Generate Self Signed SSL Certificate",
"OPTION_LIST" : ["y","n"],
@ -136,35 +146,35 @@ def initConfig(controllerObject):
"DEFAULT_VALUE" : "y",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
"CONF_NAME" : "CONFIG_QPID_SSL_SELF_SIGNED",
"CONF_NAME" : "CONFIG_AMQP_SSL_SELF_SIGNED",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
]
groupDict = { "GROUP_NAME" : "QPIDSSL",
"DESCRIPTION" : "QPID Config SSL parameters",
"PRE_CONDITION" : check_ssl_enabled,
"PRE_CONDITION_MATCH" : True,
groupDict = { "GROUP_NAME" : "AMQPSSL",
"DESCRIPTION" : "AMQP Config SSL parameters",
"PRE_CONDITION" : "CONFIG_AMQP_ENABLE_SSL",
"PRE_CONDITION_MATCH" : "y",
"POST_CONDITION" : False,
"POST_CONDITION_MATCH" : True}
controller.addGroup(groupDict, paramsList)
paramsList = [
{"CMD_OPTION" : "qpid-auth-user",
"USAGE" : "User for qpid authentication",
"PROMPT" : "Enter the user for qpid authentication",
{"CMD_OPTION" : "amqp-auth-user",
"USAGE" : "User for amqp authentication",
"PROMPT" : "Enter the user for amqp authentication",
"OPTION_LIST" : [],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : "qpid_user",
"DEFAULT_VALUE" : "amqp_user",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
"CONF_NAME" : "CONFIG_QPID_AUTH_USER",
"CONF_NAME" : "CONFIG_AMQP_AUTH_USER",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "qpid-auth-password",
{"CMD_OPTION" : "amqp-auth-password",
"USAGE" : "Password for user authentication",
"PROMPT" : "Enter the password for user authentication",
"OPTION_LIST" : ["y", "n"],
@ -172,80 +182,69 @@ def initConfig(controllerObject):
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
"CONF_NAME" : "CONFIG_QPID_AUTH_PASSWORD",
"CONF_NAME" : "CONFIG_AMQP_AUTH_PASSWORD",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
]
groupDict = { "GROUP_NAME" : "QPIDAUTH",
"DESCRIPTION" : "QPID Config Athentication parameters",
"PRE_CONDITION" : "CONFIG_QPID_ENABLE_AUTH",
groupDict = { "GROUP_NAME" : "AMQPAUTH",
"DESCRIPTION" : "AMQP Config Athentication parameters",
"PRE_CONDITION" : "CONFIG_AMQP_ENABLE_AUTH",
"PRE_CONDITION_MATCH" : "y",
"POST_CONDITION" : False,
"POST_CONDITION_MATCH" : True}
controller.addGroup(groupDict, paramsList)
def check_ssl_enabled(config):
return check_enabled(config) and config.get('CONFIG_QPID_ENABLE_SSL') == 'y'
def check_enabled(config):
return (config.get('CONFIG_NOVA_INSTALL') == 'y' or
config.get('CONFIG_QPID_HOST') != '')
def initSequences(controller):
qpidsteps = [
{'title': 'Adding QPID manifest entries', 'functions':[createmanifest]}
amqpsteps = [
{'title': 'Adding AMQP manifest entries', 'functions':[createmanifest]}
]
controller.addSequence("Installing QPID", [], [], qpidsteps)
controller.addSequence("Installing AMQP", [], [], amqpsteps)
def createmanifest(config):
manifestfile = "%s_qpid.pp"%config['CONFIG_QPID_HOST']
manifestfile = "%s_amqp.pp"%config['CONFIG_AMQP_HOST']
manifestdata = ""
ssl_manifestdata = ""
server = utils.ScriptRunner(config['CONFIG_QPID_HOST'])
if config['CONFIG_QPID_ENABLE_SSL'] == 'y':
config['CONFIG_QPID_ENABLE_SSL'] = 'true'
config['CONFIG_QPID_PROTOCOL'] = 'ssl'
config['CONFIG_QPID_CLIENTS_PORT'] = "5671"
if config['CONFIG_QPID_SSL_SELF_SIGNED'] == 'y':
server = utils.ScriptRunner(config['CONFIG_AMQP_HOST'])
if config['CONFIG_AMQP_ENABLE_SSL'] == 'y':
config['CONFIG_AMQP_ENABLE_SSL'] = 'true'
config['CONFIG_AMQP_PROTOCOL'] = 'ssl'
config['CONFIG_AMQP_CLIENTS_PORT'] = "5671"
if config['CONFIG_AMQP_SSL_SELF_SIGNED'] == 'y':
server.append( "openssl req -batch -new -x509 -nodes -keyout %s -out %s -days 1095"
% (config['CONFIG_QPID_SSL_KEY_FILE'], config['CONFIG_QPID_SSL_CERT_FILE']) )
% (config['CONFIG_AMQP_SSL_KEY_FILE'], config['CONFIG_AMQP_SSL_CERT_FILE']) )
server.execute()
ssl_manifestdata = getManifestTemplate('qpid_ssl.pp')
else:
#Set default values
config['CONFIG_QPID_CLIENTS_PORT'] = "5672"
config['CONFIG_QPID_SSL_PORT'] = "5671"
config['CONFIG_QPID_SSL_CERT_FILE'] = ""
config['CONFIG_QPID_SSL_KEY_FILE'] = ""
config['CONFIG_QPID_NSS_CERTDB_PW'] = ""
config['CONFIG_QPID_ENABLE_SSL'] = 'false'
config['CONFIG_QPID_PROTOCOL'] = 'tcp'
#Set default values
config['CONFIG_AMQP_CLIENTS_PORT'] = "5672"
config['CONFIG_AMQP_SSL_PORT'] = "5671"
config['CONFIG_AMQP_SSL_CERT_FILE'] = ""
config['CONFIG_AMQP_SSL_KEY_FILE'] = ""
config['CONFIG_AMQP_NSS_CERTDB_PW'] = ""
config['CONFIG_AMQP_ENABLE_SSL'] = 'false'
config['CONFIG_AMQP_PROTOCOL'] = 'tcp'
manifestdata = getManifestTemplate('qpid.pp')
manifestdata += ssl_manifestdata
if config['CONFIG_AMQP_ENABLE_AUTH'] == 'n':
config['CONFIG_AMQP_AUTH_PASSWORD'] = 'guest'
config['CONFIG_AMQP_AUTH_USER'] = 'guest'
if config['CONFIG_QPID_ENABLE_AUTH'] == 'y':
manifestdata += getManifestTemplate('qpid_auth.pp')
else:
config['CONFIG_QPID_AUTH_PASSWORD'] = 'guest'
config['CONFIG_QPID_AUTH_USER'] = 'guest'
manifestdata = getManifestTemplate('amqp.pp')
#All hosts should be able to talk to qpid
#All hosts should be able to talk to amqp
hosts = ["'%s'" % i for i in filtered_hosts(config, exclude=False)]
# if the rule already exists for one port puppet will fail
# so i had to add always both qpid ports (plain and SSL) in order
# so i had to add always both amqp ports (plain and SSL) in order
# to avoid rule changes, this is due some problematic behaviour of
# the puppet firewall module
# this is a temporary solution, as soon as the firewall module is
# updated we'll go back to previous state in which we open just
# the needed ports
config['FIREWALL_ALLOWED'] = ','.join(hosts)
config['FIREWALL_SERVICE_NAME'] = "qpid"
config['FIREWALL_SERVICE_NAME'] = "amqp"
config['FIREWALL_PORTS'] = "'5671', '5672'"
manifestdata += getManifestTemplate("firewall.pp")

View File

@ -10,6 +10,7 @@ import uuid
from packstack.installer import utils
from packstack.installer import validators
from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import (getManifestTemplate,
appendManifestFile)
@ -93,7 +94,8 @@ def initSequences(controller):
def create_manifest(config):
manifestfile = "%s_ceilometer.pp" % config['CONFIG_CEILOMETER_HOST']
manifestdata = getManifestTemplate("ceilometer.pp")
manifestdata = getManifestTemplate(get_mq(config, "ceilometer"))
manifestdata += getManifestTemplate("ceilometer.pp")
config['FIREWALL_ALLOWED'] = "'ALL'"
config['FIREWALL_SERVICE_NAME'] = 'ceilometer-api'
config['FIREWALL_PORTS'] = "'8777'"

View File

@ -15,6 +15,7 @@ from packstack.installer.utils import split_hosts
from packstack.installer import basedefs
from packstack.installer import utils
from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import getManifestTemplate, appendManifestFile
from packstack.installer import exceptions
from packstack.installer import output_messages
@ -355,8 +356,9 @@ def create_keystone_manifest(config):
def create_manifest(config):
manifestdata = getManifestTemplate(get_mq(config, "cinder"))
manifestfile = "%s_cinder.pp" % controller.CONF['CONFIG_CINDER_HOST']
manifestdata = getManifestTemplate("cinder.pp")
manifestdata += getManifestTemplate("cinder.pp")
if config['CONFIG_CINDER_BACKEND'] == "gluster":
manifestdata += getManifestTemplate("cinder_gluster.pp")

View File

@ -10,6 +10,7 @@ from packstack.installer import basedefs
from packstack.installer import utils
from packstack.installer.utils import split_hosts
from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import getManifestTemplate, appendManifestFile
# Controller object will be initialized from main flow
@ -97,7 +98,8 @@ def createmanifest(config):
manifestfile = "%s_glance.pp" % controller.CONF['CONFIG_GLANCE_HOST']
manifestdata = getManifestTemplate("glance.pp")
if config['CONFIG_CEILOMETER_INSTALL'] == 'y':
manifestdata += getManifestTemplate('glance_ceilometer.pp')
manifestdata += getManifestTemplate(get_mq(config, "glance_ceilometer"))
hosts = set()
if config['CONFIG_NOVA_INSTALL'] == 'y':
hosts = split_hosts(config['CONFIG_NOVA_COMPUTE_HOSTS'])

View File

@ -9,6 +9,7 @@ import os
from packstack.installer import utils
from packstack.installer import validators
from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import (getManifestTemplate,
manifestfiles,
appendManifestFile)
@ -190,7 +191,8 @@ def create_manifest(config):
config['CONFIG_HEAT_METADATA_HOST'] = config['CONFIG_HEAT_HOST']
manifestfile = "%s_heat.pp" % controller.CONF['CONFIG_HEAT_HOST']
manifestdata = getManifestTemplate("heat.pp")
manifestdata = getManifestTemplate(get_mq(config, "heat"))
manifestdata += getManifestTemplate("heat.pp")
appendManifestFile(manifestfile, manifestdata)

View File

@ -11,6 +11,7 @@ from packstack.installer import utils
from packstack.installer import validators
from packstack.installer.utils import split_hosts
from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import getManifestTemplate, appendManifestFile
# Controller object will be initialized from main flow
@ -482,11 +483,8 @@ def initConfig(controllerObject):
return use_openvswitch_plugin_tunnel(config) or use_ml2_with_ovs(config)
def use_openvswitch_vxlan(config):
return ((use_openvswitch_plugin_tunnel(config) and
config['CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE'] == 'vxlan')
or
(use_ml2_with_ovs(config) and
'vxlan' in config['CONFIG_NEUTRON_ML2_TYPE_DRIVERS']))
return (use_openvswitch_plugin_tunnel(config) and
config['CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE'] == 'vxlan')
conf_groups = [
@ -643,6 +641,7 @@ def create_manifests(config):
for host in q_hosts:
manifest_file = "%s_neutron.pp" % (host,)
manifest_data = getManifestTemplate("neutron.pp")
manifest_data += getManifestTemplate(get_mq(config, "neutron"))
appendManifestFile(manifest_file, manifest_data, 'neutron')
if host in api_hosts:

View File

@ -10,6 +10,7 @@ import platform
from packstack.installer import processors, utils, validators
from packstack.installer.exceptions import ScriptRuntimeError
from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import NovaConfig, getManifestTemplate, appendManifestFile, manifestfiles
# Controller object will be initialized from main flow
@ -465,7 +466,7 @@ def createcomputemanifest(config):
controller.MESSAGES.append(str(ex))
if config['CONFIG_CEILOMETER_INSTALL'] == 'y':
manifestdata += getManifestTemplate("nova_ceilometer.pp")
manifestdata += getManifestTemplate(get_mq(config, "nova_ceilometer"))
# According to the docs the only element that connects directly to nova compute
# is nova scheduler
@ -567,7 +568,8 @@ def createcommonmanifest(config):
metadata = config['CONFIG_NOVA_API_HOST']
config['CONFIG_NOVA_METADATA_HOST'] = metadata
data = getManifestTemplate("nova_common.pp")
data = getManifestTemplate(get_mq(config, "nova_common"))
data += getManifestTemplate("nova_common.pp")
appendManifestFile(os.path.split(manifestfile)[1], data)

View File

@ -85,7 +85,7 @@ def copyPuppetModules(config):
'concat', 'firewall', 'glance', 'heat', 'horizon',
'inifile', 'keystone', 'memcached', 'mongodb',
'mysql', 'neutron', 'nova', 'nssdb', 'openstack',
'packstack', 'qpid', 'rsync', 'ssh', 'stdlib',
'packstack', 'qpid', 'rabbitmq', 'rsync', 'ssh', 'stdlib',
'swift', 'sysctl', 'tempest', 'vcsrepo', 'vlan',
'vswitch', 'xinetd'))

View File

@ -0,0 +1,115 @@
$amqp = '%(CONFIG_AMQP_SERVER)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') {
class {"qpid::server":
config_file => $::operatingsystem? {
'Fedora' => '/etc/qpid/qpidd.conf',
default => '/etc/qpidd.conf',
},
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',
}
}

View File

@ -14,18 +14,6 @@ firewall { '001 mongodb incoming localhost':
action => 'accept',
}
class { 'ceilometer':
metering_secret => '%(CONFIG_CEILOMETER_SECRET)s',
qpid_hostname => '%(CONFIG_QPID_HOST)s',
qpid_username => '%(CONFIG_QPID_AUTH_USER)s',
qpid_password => '%(CONFIG_QPID_AUTH_PASSWORD)s',
rpc_backend => 'ceilometer.openstack.common.rpc.impl_qpid',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
qpid_port => '%(CONFIG_QPID_CLIENTS_PORT)s',
qpid_protocol => '%(CONFIG_QPID_PROTOCOL)s'
}
class { 'ceilometer::db':
database_connection => 'mongodb://localhost:27017/ceilometer',
require => Class['mongodb::server'],

View File

@ -0,0 +1,11 @@
class { 'ceilometer':
metering_secret => '%(CONFIG_CEILOMETER_SECRET)s',
qpid_hostname => '%(CONFIG_AMQP_HOST)s',
qpid_username => '%(CONFIG_AMQP_AUTH_USER)s',
qpid_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
rpc_backend => 'ceilometer.openstack.common.rpc.impl_qpid',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
qpid_port => '%(CONFIG_AMQP_CLIENTS_PORT)s',
qpid_protocol => '%(CONFIG_AMQP_PROTOCOL)s'
}

View File

@ -0,0 +1,9 @@
class { 'ceilometer':
metering_secret => '%(CONFIG_CEILOMETER_SECRET)s',
rabbit_host => '%(CONFIG_AMQP_HOST)s',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
rabbit_port => '%(CONFIG_AMQP_CLIENTS_PORT)s',
rabbit_userid => '%(CONFIG_AMQP_AUTH_USER)s',
rabbit_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
}

View File

@ -1,16 +1,3 @@
class {'cinder':
rpc_backend => 'cinder.openstack.common.rpc.impl_qpid',
qpid_hostname => "%(CONFIG_QPID_HOST)s",
qpid_port => '%(CONFIG_QPID_CLIENTS_PORT)s',
qpid_protocol => '%(CONFIG_QPID_PROTOCOL)s',
qpid_username => '%(CONFIG_QPID_AUTH_USER)s',
qpid_password => '%(CONFIG_QPID_AUTH_PASSWORD)s',
sql_connection => "mysql://cinder:%(CONFIG_CINDER_DB_PW)s@%(CONFIG_MYSQL_HOST)s/cinder",
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
}
cinder_config {
"DEFAULT/glance_host": value => "%(CONFIG_GLANCE_HOST)s";
}

View File

@ -0,0 +1,12 @@
class {'cinder':
rpc_backend => 'cinder.openstack.common.rpc.impl_qpid',
qpid_hostname => "%(CONFIG_AMQP_HOST)s",
qpid_port => '%(CONFIG_AMQP_CLIENTS_PORT)s',
qpid_protocol => '%(CONFIG_AMQP_PROTOCOL)s',
qpid_username => '%(CONFIG_AMQP_AUTH_USER)s',
qpid_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
sql_connection => "mysql://cinder:%(CONFIG_CINDER_DB_PW)s@%(CONFIG_MYSQL_HOST)s/cinder",
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
}

View File

@ -0,0 +1,10 @@
class {'cinder':
rabbit_host => "%(CONFIG_AMQP_HOST)s",
rabbit_port => '%(CONFIG_AMQP_CLIENTS_PORT)s',
rabbit_userid => '%(CONFIG_AMQP_AUTH_USER)s',
rabbit_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
sql_connection => "mysql://cinder:%(CONFIG_CINDER_DB_PW)s@%(CONFIG_MYSQL_HOST)s/cinder",
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
}

View File

@ -1,8 +0,0 @@
class { 'glance::notify::qpid':
qpid_password => '%(CONFIG_QPID_AUTH_PASSWORD)s',
qpid_username => '%(CONFIG_QPID_AUTH_USER)s',
qpid_hostname => '%(CONFIG_QPID_HOST)s',
qpid_port => '%(CONFIG_QPID_CLIENTS_PORT)s',
qpid_protocol => '%(CONFIG_QPID_PROTOCOL)s'
}

View File

@ -0,0 +1,8 @@
class { 'glance::notify::qpid':
qpid_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
qpid_username => '%(CONFIG_AMQP_AUTH_USER)s',
qpid_hostname => '%(CONFIG_AMQP_HOST)s',
qpid_port => '%(CONFIG_AMQP_CLIENTS_PORT)s',
qpid_protocol => '%(CONFIG_AMQP_PROTOCOL)s'
}

View File

@ -0,0 +1,9 @@
class { 'glance::notify::rabbitmq':
rabbit_host => '%(CONFIG_AMQP_HOST)s',
rabbit_port => '%(CONFIG_AMQP_CLIENTS_PORT)s',
rabbit_use_ssl => '%(CONFIG_AMQP_ENABLE_SSL)s',
rabbit_userid => '%(CONFIG_AMQP_AUTH_USER)s',
rabbit_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
}

View File

@ -1,18 +1,4 @@
class { 'heat':
keystone_host => '%(CONFIG_KEYSTONE_HOST)s',
keystone_password => '%(CONFIG_HEAT_KS_PW)s',
auth_uri => 'http://%(CONFIG_KEYSTONE_HOST)s:35357/v2.0',
rpc_backend => 'heat.openstack.common.rpc.impl_qpid',
qpid_hostname => '%(CONFIG_QPID_HOST)s',
qpid_username => '%(CONFIG_QPID_AUTH_USER)s',
qpid_password => '%(CONFIG_QPID_AUTH_PASSWORD)s',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
qpid_port => '%(CONFIG_QPID_CLIENTS_PORT)s',
qpid_protocol => '%(CONFIG_QPID_PROTOCOL)s',
}
class {"heat::db":
sql_connection => "mysql://heat:%(CONFIG_HEAT_DB_PW)s@%(CONFIG_MYSQL_HOST)s/heat"
}

View File

@ -0,0 +1,12 @@
class { 'heat':
keystone_host => '%(CONFIG_KEYSTONE_HOST)s',
keystone_password => '%(CONFIG_HEAT_KS_PW)s',
auth_uri => 'http://%(CONFIG_KEYSTONE_HOST)s:35357/v2.0',
rpc_backend => 'heat.openstack.common.rpc.impl_qpid',
qpid_hostname => '%(CONFIG_AMQP_HOST)s',
qpid_username => '%(CONFIG_AMQP_AUTH_USER)s',
qpid_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
}

View File

@ -0,0 +1,12 @@
class { 'heat':
keystone_host => '%(CONFIG_KEYSTONE_HOST)s',
keystone_password => '%(CONFIG_HEAT_KS_PW)s',
auth_uri => 'http://%(CONFIG_KEYSTONE_HOST)s:35357/v2.0',
rpc_backend => 'heat.openstack.common.rpc.impl_rabbit',
rabbit_host => '%(CONFIG_AMQP_HOST)s',
rabbit_user => '%(CONFIG_AMQP_AUTH_USER)s',
rabbit_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
}

View File

@ -6,16 +6,4 @@ $neutron_sql_connection = "mysql://${neutron_db_user}:${neutron_db_password}@${n
$neutron_user_password = '%(CONFIG_NEUTRON_KS_PW)s'
class { 'neutron':
rpc_backend => 'neutron.openstack.common.rpc.impl_qpid',
qpid_hostname => '%(CONFIG_QPID_HOST)s',
qpid_username => '%(CONFIG_QPID_AUTH_USER)s',
qpid_password => '%(CONFIG_QPID_AUTH_PASSWORD)s',
qpid_port => '%(CONFIG_QPID_CLIENTS_PORT)s',
qpid_protocol => '%(CONFIG_QPID_PROTOCOL)s',
core_plugin => '%(CONFIG_NEUTRON_CORE_PLUGIN)s',
allow_overlapping_ips => true,
service_plugins => %(SERVICE_PLUGINS)s,
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
}

View File

@ -0,0 +1,14 @@
class { 'neutron':
rpc_backend => 'neutron.openstack.common.rpc.impl_qpid',
qpid_hostname => '%(CONFIG_AMQP_HOST)s',
qpid_username => '%(CONFIG_AMQP_AUTH_USER)s',
qpid_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
qpid_port => '%(CONFIG_AMQP_CLIENTS_PORT)s',
qpid_protocol => '%(CONFIG_AMQP_PROTOCOL)s',
core_plugin => '%(CONFIG_NEUTRON_CORE_PLUGIN)s',
allow_overlapping_ips => true,
service_plugins => %(SERVICE_PLUGINS)s,
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
}

View File

@ -0,0 +1,12 @@
class { 'neutron':
rabbit_host => '%(CONFIG_AMQP_HOST)s',
rabbit_port => '%(CONFIG_AMQP_CLIENTS_PORT)s',
rabbit_user => '%(CONFIG_AMQP_AUTH_USER)s',
rabbit_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
core_plugin => '%(CONFIG_NEUTRON_CORE_PLUGIN)s',
allow_overlapping_ips => true,
service_plugins => %(SERVICE_PLUGINS)s,
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
}

View File

@ -1,14 +1,4 @@
class { 'ceilometer':
metering_secret => '%(CONFIG_CEILOMETER_SECRET)s',
qpid_hostname => '%(CONFIG_QPID_HOST)s',
qpid_username => '%(CONFIG_QPID_AUTH_USER)s',
qpid_password => '%(CONFIG_QPID_AUTH_PASSWORD)s',
rpc_backend => 'ceilometer.openstack.common.rpc.impl_qpid',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s
}
class { 'ceilometer::agent::auth':
auth_url => 'http://%(CONFIG_KEYSTONE_HOST)s:35357/v2.0',
auth_password => '%(CONFIG_CEILOMETER_KS_PW)s',

View File

@ -0,0 +1,11 @@
class { 'ceilometer':
metering_secret => '%(CONFIG_CEILOMETER_SECRET)s',
qpid_hostname => '%(CONFIG_AMQP_HOST)s',
qpid_username => '%(CONFIG_AMQP_AUTH_USER)s',
qpid_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
rpc_backend => 'ceilometer.openstack.common.rpc.impl_qpid',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s
}

View File

@ -0,0 +1,10 @@
class { 'ceilometer':
metering_secret => '%(CONFIG_CEILOMETER_SECRET)s',
rabbit_host => '%(CONFIG_AMQP_HOST)s',
rabbit_userid => '%(CONFIG_AMQP_AUTH_USER)s',
rabbit_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s
}

View File

@ -8,14 +8,4 @@ nova_config{
"DEFAULT/metadata_host": value => "%(CONFIG_NOVA_METADATA_HOST)s";
}
class { "nova":
glance_api_servers => "%(CONFIG_GLANCE_HOST)s:9292",
qpid_hostname => "%(CONFIG_QPID_HOST)s",
qpid_username => '%(CONFIG_QPID_AUTH_USER)s',
qpid_password => '%(CONFIG_QPID_AUTH_PASSWORD)s',
rpc_backend => 'nova.openstack.common.rpc.impl_qpid',
qpid_port => '%(CONFIG_QPID_CLIENTS_PORT)s',
qpid_protocol => '%(CONFIG_QPID_PROTOCOL)s',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
}

View File

@ -0,0 +1,12 @@
class { "nova":
glance_api_servers => "%(CONFIG_GLANCE_HOST)s:9292",
qpid_hostname => "%(CONFIG_AMQP_HOST)s",
qpid_username => '%(CONFIG_AMQP_AUTH_USER)s',
qpid_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
rpc_backend => 'nova.openstack.common.rpc.impl_qpid',
qpid_port => '%(CONFIG_AMQP_CLIENTS_PORT)s',
qpid_protocol => '%(CONFIG_AMQP_PROTOCOL)s',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
}

View File

@ -0,0 +1,10 @@
class { "nova":
glance_api_servers => "%(CONFIG_GLANCE_HOST)s:9292",
rabbit_host => "%(CONFIG_AMQP_HOST)s",
rabbit_port => '%(CONFIG_AMQP_CLIENTS_PORT)s',
rabbit_userid => '%(CONFIG_AMQP_AUTH_USER)s',
rabbit_password => '%(CONFIG_AMQP_AUTH_PASSWORD)s',
verbose => true,
debug => %(CONFIG_DEBUG_MODE)s,
}

View File

@ -1,18 +0,0 @@
$enable_auth = '%(CONFIG_QPID_ENABLE_AUTH)s'
class {"qpid::server":
config_file => $::operatingsystem? {
'Fedora' => '/etc/qpid/qpidd.conf',
default => '/etc/qpidd.conf',
},
auth => $enable_auth ? {
'y' => 'yes',
default => 'no',
},
clustered => false,
ssl_port => '%(CONFIG_QPID_SSL_PORT)s',
ssl => %(CONFIG_QPID_ENABLE_SSL)s,
ssl_cert => '%(CONFIG_QPID_SSL_CERT_FILE)s',
ssl_key => '%(CONFIG_QPID_SSL_KEY_FILE)s',
ssl_database_password => '%(CONFIG_QPID_NSS_CERTDB_PW)s',
}

View File

@ -1,15 +0,0 @@
qpid_user { '%(CONFIG_QPID_AUTH_USER)s':
password => '%(CONFIG_QPID_AUTH_PASSWORD)s',
file => '/var/lib/qpidd/qpidd.sasldb',
realm => 'QPID',
provider => 'saslpasswd2',
require => Class['qpid::server'],
}
file { 'sasldb_file':
path => '/var/lib/qpidd/qpidd.sasldb',
ensure => file,
owner => 'qpidd',
group => 'qpidd',
}

View File

@ -1,35 +0,0 @@
# 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'],
}