Skip to content

Commit

Permalink
[AMQP] cherrypick ssl fixes from freeipa patches
Browse files Browse the repository at this point in the history
Change-Id: I96c93d97d300e3e4c0502b2658be7390970c8a08
Resolves: rhbz#1147823, rhbz#1185921, rhbz#1147224
(cherry picked from commit 69a00b8)
  • Loading branch information
xbezdick committed Feb 10, 2015
1 parent 25ced12 commit ef4750b
Show file tree
Hide file tree
Showing 10 changed files with 70 additions and 13 deletions.
15 changes: 15 additions & 0 deletions packstack/plugins/amqp_002.py
Expand Up @@ -115,6 +115,21 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},

{"CMD_OPTION": "amqp-ssl-cacert-file",
"USAGE": ("The filename of the CAcertificate that the AMQP service "
"is going to use for verification"),
"PROMPT": ("Enter the filename of the SSL CAcertificate for the AMQP"
" service"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
"DEFAULT_VALUE": "/etc/pki/tls/certs/amqp_selfcert.pem",
"MASK_INPUT": False,
"LOOSE_VALIDATION": True,
"CONF_NAME": "CONFIG_AMQP_SSL_CACERT_FILE",
"USE_DEFAULT": False,
"NEED_CONFIRM": False,
"CONDITION": False},

{"CMD_OPTION": "amqp-ssl-cert-file",
"USAGE": ("The filename of the certificate that the AMQP service "
"is going to use"),
Expand Down
56 changes: 44 additions & 12 deletions packstack/puppet/templates/amqp.pp
@@ -1,9 +1,10 @@
$amqp = hiera('CONFIG_AMQP_BACKEND')
$amqp_enable_ssl = hiera('CONFIG_AMQP_ENABLE_SSL')

case $amqp {
'qpid': {
enable_qpid { 'qpid':
enable_ssl => hiera('CONFIG_AMQP_ENABLE_SSL'),
enable_ssl => $amqp_enable_ssl,
enable_auth => hiera('CONFIG_AMQP_ENABLE_AUTH'),
}
}
Expand All @@ -19,19 +20,50 @@
ensure => 'installed',
}

class { 'rabbitmq':
port => hiera('CONFIG_AMQP_CLIENTS_PORT'),
ssl_management_port => hiera('CONFIG_AMQP_SSL_PORT'),
ssl => hiera('CONFIG_AMQP_ENABLE_SSL'),
ssl_cert => hiera('CONFIG_AMQP_SSL_CERT_FILE'),
ssl_key => hiera('CONFIG_AMQP_SSL_KEY_FILE'),
default_user => hiera('CONFIG_AMQP_AUTH_USER'),
default_pass => hiera('CONFIG_AMQP_AUTH_PASSWORD'),
package_provider => 'yum',
admin_enable => false,
config_variables => {
if $amqp_enable_ssl {

$kombu_ssl_ca_certs = hiera('CONFIG_AMQP_SSL_CACERT_FILE')
$kombu_ssl_keyfile = hiera('CONFIG_AMQP_SSL_KEY_FILE')
$kombu_ssl_certfile = hiera('CONFIG_AMQP_SSL_CERT_FILE')

$files_to_set_owner = [ $kombu_ssl_keyfile, $kombu_ssl_certfile ]
file { $files_to_set_owner:
owner => 'rabbitmq',
group => 'rabbitmq',
require => Package['rabbitmq-server'],
notify => Service['rabbitmq-server'],
}

class {"rabbitmq":
ssl_port => hiera('CONFIG_AMQP_SSL_PORT'),
ssl_only => true,
ssl => $amqp_enable_ssl,
ssl_cacert => $kombu_ssl_ca_certs,
ssl_cert => $kombu_ssl_certfile,
ssl_key => $kombu_ssl_keyfile,
default_user => hiera('CONFIG_AMQP_AUTH_USER'),
default_pass => hiera('CONFIG_AMQP_AUTH_PASSWORD'),
package_provider => 'yum',
admin_enable => false,
# FIXME: it's ugly to not to require client certs
ssl_fail_if_no_peer_cert => false,
config_variables => {
'tcp_listen_options' => "[binary,{packet, raw},{reuseaddr, true},{backlog, 128},{nodelay, true},{exit_on_close, false},{keepalive, true}]",
'loopback_users' => "[]",
}
}
} else {
class {"rabbitmq":
port => hiera('CONFIG_AMQP_CLIENTS_PORT'),
ssl => $amqp_enable_ssl,
default_user => hiera('CONFIG_AMQP_AUTH_USER'),
default_pass => hiera('CONFIG_AMQP_AUTH_PASSWORD'),
package_provider => 'yum',
admin_enable => false,
config_variables => {
'tcp_listen_options' => "[binary,{packet, raw},{reuseaddr, true},{backlog, 128},{nodelay, true},{exit_on_close, false},{keepalive, true}]",
'loopback_users' => "[]",
}
}
}

Expand Down
3 changes: 2 additions & 1 deletion packstack/puppet/templates/ceilometer_rabbitmq.pp
@@ -1,9 +1,10 @@
class { 'ceilometer':
metering_secret => hiera('CONFIG_CEILOMETER_SECRET'),
rabbit_host => hiera('CONFIG_AMQP_HOST'),
verbose => true,
debug => hiera('CONFIG_DEBUG_MODE'),
rabbit_host => hiera('CONFIG_AMQP_HOST'),
rabbit_port => hiera('CONFIG_AMQP_CLIENTS_PORT'),
rabbit_use_ssl => hiera('CONFIG_AMQP_ENABLE_SSL'),
rabbit_userid => hiera('CONFIG_AMQP_AUTH_USER'),
rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'),
}
1 change: 1 addition & 0 deletions packstack/puppet/templates/cinder_rabbitmq.pp
Expand Up @@ -4,6 +4,7 @@
class {'cinder':
rabbit_host => hiera('CONFIG_AMQP_HOST'),
rabbit_port => hiera('CONFIG_AMQP_CLIENTS_PORT'),
rabbit_use_ssl => hiera('CONFIG_AMQP_ENABLE_SSL'),
rabbit_userid => hiera('CONFIG_AMQP_AUTH_USER'),
rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'),
database_connection => "mysql://cinder:${cinder_rab_cfg_cinder_db_pw}@${cinder_rab_cfg_mariadb_host}/cinder",
Expand Down
2 changes: 2 additions & 0 deletions packstack/puppet/templates/heat_rabbitmq.pp
Expand Up @@ -9,6 +9,8 @@
keystone_ec2_uri => "http://${heat_rabbitmq_cfg_ctrl_host}:35357/v2.0",
rpc_backend => 'heat.openstack.common.rpc.impl_kombu',
rabbit_host => hiera('CONFIG_AMQP_HOST'),
rabbit_port => hiera('CONFIG_AMQP_CLIENTS_PORT'),
rabbit_use_ssl => hiera('CONFIG_AMQP_ENABLE_SSL'),
rabbit_userid => hiera('CONFIG_AMQP_AUTH_USER'),
rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'),
verbose => true,
Expand Down
1 change: 1 addition & 0 deletions packstack/puppet/templates/ironic_rabbitmq.pp
Expand Up @@ -5,6 +5,7 @@
rpc_backend => 'ironic.openstack.common.rpc.impl_kombu',
rabbit_host => hiera('CONFIG_AMQP_HOST'),
rabbit_port => hiera('CONFIG_AMQP_CLIENTS_PORT'),
rabbit_use_ssl => hiera('CONFIG_AMQP_ENABLE_SSL'),
rabbit_user => hiera('CONFIG_AMQP_AUTH_USER'),
rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'),
database_connection => "mysql://ironic:${ironic_rabbitmq_cfg_ironic_db_pw}@${ironic_rabbitmq_cfg_mariadb_host}/ironic",
Expand Down
1 change: 1 addition & 0 deletions packstack/puppet/templates/neutron_rabbitmq.pp
Expand Up @@ -2,6 +2,7 @@
class { 'neutron':
rabbit_host => hiera('CONFIG_AMQP_HOST'),
rabbit_port => hiera('CONFIG_AMQP_CLIENTS_PORT'),
rabbit_use_ssl => hiera('CONFIG_AMQP_ENABLE_SSL'),
rabbit_user => hiera('CONFIG_AMQP_AUTH_USER'),
rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'),
core_plugin => hiera('CONFIG_NEUTRON_CORE_PLUGIN'),
Expand Down
2 changes: 2 additions & 0 deletions packstack/puppet/templates/nova_ceilometer_rabbitmq.pp
Expand Up @@ -2,6 +2,8 @@
class { 'ceilometer':
metering_secret => hiera('CONFIG_CEILOMETER_SECRET'),
rabbit_host => hiera('CONFIG_AMQP_HOST'),
rabbit_port => hiera('CONFIG_AMQP_CLIENTS_PORT'),
rabbit_use_ssl => hiera('CONFIG_AMQP_ENABLE_SSL'),
rabbit_userid => hiera('CONFIG_AMQP_AUTH_USER'),
rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'),
verbose => true,
Expand Down
1 change: 1 addition & 0 deletions packstack/puppet/templates/nova_common_rabbitmq.pp
Expand Up @@ -14,6 +14,7 @@
glance_api_servers => "${nova_common_rabbitmq_cfg_storage_host}:9292",
rabbit_host => hiera('CONFIG_AMQP_HOST'),
rabbit_port => hiera('CONFIG_AMQP_CLIENTS_PORT'),
rabbit_use_ssl => hiera('CONFIG_AMQP_ENABLE_SSL'),
rabbit_userid => hiera('CONFIG_AMQP_AUTH_USER'),
rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'),
verbose => true,
Expand Down
1 change: 1 addition & 0 deletions packstack/puppet/templates/sahara_rabbitmq.pp
@@ -1,6 +1,7 @@
class { 'sahara::notify::rabbitmq':
rabbit_host => hiera('CONFIG_AMQP_HOST'),
rabbit_port => hiera('CONFIG_AMQP_CLIENTS_PORT'),
rabbit_use_ssl => hiera('CONFIG_AMQP_ENABLE_SSL'),
rabbit_userid => hiera('CONFIG_AMQP_AUTH_USER'),
rabbit_password => hiera('CONFIG_AMQP_AUTH_PASSWORD'),
}

0 comments on commit ef4750b

Please sign in to comment.