Skip to content

Commit

Permalink
Closes-Bug: #1570541 - Separating RabbitMQ provision from Config
Browse files Browse the repository at this point in the history
This will allow Openstack to Provision its own rabbitmq cluster.

To provision rabbitmq on openstack nodes:

In new params, add parameter as below:
"parameters": {
                "provision": {
                    "openstack": {
                        "openstack_manage_amqp": true,
                    }
                }
}

This will now allow SM to provision Openstack role independently in a cluster
Related-Bug: #1566558 - Use External Openstack
Related-Bug: #1566585 - Use External Rabbitmq

Change-Id: I9da4e922572630d5142804343faa3722cfa48068
  • Loading branch information
nitishkrishna committed Apr 21, 2016
1 parent 688262c commit beda2ce
Show file tree
Hide file tree
Showing 8 changed files with 83 additions and 48 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
class contrail::config::add_etc_hosts (
class contrail::add_etc_hosts (
$contrail_logoutput = $::contrail::params::contrail_logoutput,
$cfgm_ip_list_shell,
$cfgm_name_list_shell
$amqp_ip_list_shell,
$amqp_name_list_shell
) {
file { '/etc/contrail/add_etc_host.py' :
mode => '0755',
group => root,
source => "puppet:///modules/${module_name}/add_etc_host.py"
} ->
exec { 'add-etc-hosts' :
command => "python /etc/contrail/add_etc_host.py ${cfgm_ip_list_shell} ${cfgm_name_list_shell} && echo add-etc-hosts >> /etc/contrail/contrail_config_exec.out",
command => "python /etc/contrail/add_etc_host.py ${amqp_ip_list_shell} ${amqp_name_list_shell} && echo add-etc-hosts >> /etc/contrail/contrail_config_exec.out",
unless => 'grep -qx add-etc-hosts /etc/contrail/contrail_config_exec.out',
provider => shell,
logoutput => $contrail_logoutput
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
$xmpp_dns_auth_enable = $::contrail::params::xmpp_dns_auth_enable,
$enable_dpdk= $::contrail::params::enable_dpdk,
$contrail_rabbit_servers = $::contrail::params::contrail_rabbit_servers,
$openstack_rabbit_servers = $::contrail::params::openstack_rabbit_servers,
$sriov = $::contrail::params::sriov,
) {
$config_ip_to_use = $::contrail::params::config_ip_to_use
Expand Down Expand Up @@ -191,6 +192,12 @@
Notify["vmware_physical_intf = ${vmware_physical_intf}"] ->Class['::contrail::compute::create_nfs']->Nova_config['neutron/admin_auth_url']
}

if ($openstack_manage_amqp) {
$nova_compute_rabbit_hosts = $openstack_rabbit_servers
} else {
$nova_compute_rabbit_hosts = $contrail_rabbit_servers
}

$nova_params = {
'neutron/admin_auth_url'=> { value => "http://${keystone_ip_to_use}:35357/v2.0/" },
'neutron/admin_tenant_name' => { value => 'services', },
Expand All @@ -200,7 +207,7 @@
'neutron/url_timeout' => { value => "300" },
'keystone_authtoken/admin_password'=> { value => "${keystone_admin_password}" },
'compute/compute_driver'=> { value => "libvirt.LibvirtDriver" },
'DEFAULT/rabbit_hosts' => {value => "${contrail_rabbit_servers}"},
'DEFAULT/rabbit_hosts' => {value => "${nova_compute_rabbit_hosts}"},
}
create_resources(nova_config, $nova_params, {} )

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -397,22 +397,23 @@
content => template("${module_name}/contrail-discovery.svc.erb"),
} ->

Class['::contrail::config::rabbitmq'] ->

file { '/usr/bin/nodejs':
ensure => link,
target => '/usr/bin/node',
} ->

Sysctl::Value['net.ipv4.tcp_keepalive_time']
if (! defined(Class['::contrail::rabbitmq'])){
contain ::contrail::rabbitmq
File['/etc/init.d/contrail-discovery']->Class['::contrail::rabbitmq']->File['/usr/bin/nodejs']
}
# run setup-pki.sh script
if $use_certs == true {
contain ::contrail::config::setup_pki
Class['::contrail::config::rabbitmq']->Class['::contrail::config::setup_pki']->File['/usr/bin/nodejs']
File['/etc/init.d/contrail-discovery']->Class['::contrail::config::setup_pki']->File['/usr/bin/nodejs']
}
contain ::contrail::openstackrc
contain ::contrail::keystone
contain ::contrail::config::config_neutron_server
contain ::contrail::config::rabbitmq
contain ::contrail::config::setup_quantum_server_setup
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,6 @@
$contrail_logoutput = false,
) {
if ($host_control_ip in $openstack_ip_list) {
package { 'contrail-openstack':
ensure => latest,
}
->
exec { 'exec_start_supervisor_openstack' :
command => 'service supervisor-openstack restart && echo start_supervisor_openstack >> /etc/contrail/contrail_openstack_exec.out',
provider => shell,
require => [ Package['contrail-openstack'] ],
logoutput => $contrail_logoutput
}

#Make ha-mon start later
if($internal_vip != '') {
#Get the value for hiera and not from openstack::config
Expand Down
2 changes: 2 additions & 0 deletions contrail/environment/modules/contrail/manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -772,6 +772,8 @@
$openstack_rabbit_ip_list = $openstack_amqp_ip_list
} elsif ($contrail_amqp_ip_list != '') {
$openstack_rabbit_ip_list = $contrail_amqp_ip_list
} elsif ($openstack_manage_amqp) {
$openstack_rabbit_ip_list = $openstack_ip_list
} else {
$openstack_rabbit_ip_list = $config_ip_list
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
$enable_ceilometer = $::contrail::params::enable_ceilometer,
$is_there_roles_to_delete = $::contrail::params::is_there_roles_to_delete,
$host_roles = $::contrail::params::host_roles,
$package_sku = $::contrail::params::package_sku
$package_sku = $::contrail::params::package_sku,
$openstack_manage_amqp = $::contrail::params::openstack_manage_amqp
) {
if ($enable_module and 'openstack' in $host_roles and $is_there_roles_to_delete == false) {
contrail::lib::report_status { 'openstack_started': state => 'openstack_started' } ->
Expand Down Expand Up @@ -50,6 +51,17 @@
database_connection => $::openstack::resources::connectors::neutron
} ->
notify { "contrail::profile::openstack_controller - neutron_db_connection = ${::openstack::resources::connectors::neutron}":; } ->
package { 'contrail-openstack':
ensure => latest,
}
->
exec { 'exec_start_supervisor_openstack' :
command => 'service supervisor-openstack restart && echo start_supervisor_openstack >> /etc/contrail/contrail_openstack_exec.out',
provider => shell,
require => [ Package['contrail-openstack'] ],
logoutput => $contrail_logoutput
}
->
contrail::lib::report_status { 'openstack_completed': state => 'openstack_completed' }
contain ::openstack::profile::base
contain ::nova::quota
Expand All @@ -66,6 +78,7 @@
contain ::contrail::contrail_openstack
contain ::contrail::profile::neutron_db_sync
Class['::openstack::profile::provision']->Service['glance-api']
Package['contrail-openstack'] -> Exec['exec_start_supervisor_openstack']
if ($enable_ceilometer) {
Class['::contrail::profile::openstack::heat'] ->
class {'::contrail::profile::openstack::ceilometer' : } ->
Expand All @@ -81,6 +94,12 @@
File['/etc/openstack-dashboard/local_settings.py']
Package['contrail-openstack-dashboard'] -> Exec['openstack-neutron-db-sync']
}

if ($openstack_manage_amqp and ! defined(Class['::contrail::rabbitmq']) ) {
contain ::contrail::rabbitmq
Package['contrail-openstack'] -> Class['::contrail::rabbitmq'] -> Exec['exec_start_supervisor_openstack']
}

} elsif ((!('openstack' in $host_roles)) and ($contrail_roles['openstack'] == true)) {

notify { 'uninstalling openstack':; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
class contrail::config::rabbitmq (
class contrail::rabbitmq (
$host_control_ip = $::contrail::params::host_ip,
$control_ip_list = $::contrail::params::control_ip_list,
$haproxy = $::contrail::params::haproxy,
$openstack_manage_amqp = $::contrail::params::openstack_manage_amqp,
$amqp_server_ip = $::contrail::params::amqp_server_ip,
$config_ip_list = $::contrail::params::config_ip_list,
$openstack_ip_list = $::contrail::params::openstack_ip_list,
$config_name_list = $::contrail::params::config_name_list,
$openstack_name_list = $::contrail::params::openstack_name_list,
$config_ip = $::contrail::params::config_ip_to_use,
$collector_ip = $::contrail::params::collector_ip_to_use,
$contrail_rabbit_servers= $::contrail::params::contrail_rabbit_servers,
Expand All @@ -15,24 +17,39 @@
) {
# Check to see if amqp_ip_list was passed by user. If yes, rabbitmq provisioning can be skipped
if (! $contrail_amqp_ip_list) {
# Set number of config nodes
$cfgm_number = size($config_ip_list)
if ($cfgm_number == 1) {
$rabbitmq_conf_template = 'rabbitmq_config_single_node.erb'
} else {
$rabbitmq_conf_template = 'rabbitmq_config.erb'
}
if ($openstack_manage_amqp and ($host_control_ip in $openstack_ip_list)) {
$amqp_ip_list = $openstack_ip_list
$amqp_name_list = $openstack_name_list
}
else {
$amqp_ip_list = $config_ip_list
$amqp_name_list = $config_name_list
}
# Set number of amqp nodes
$amqp_number = size($amqp_ip_list)
if ($amqp_number == 1) {
$rabbitmq_conf_template = 'rabbitmq_config_single_node.erb'
} else {
$rabbitmq_conf_template = 'rabbitmq_config.erb'
}

if ( $host_control_ip == $config_ip_list[0]) {
$master = 'yes'
} else {
$master = 'no'
}
if ( $host_control_ip == $amqp_ip_list[0]) {
$master = 'yes'
} else {
$master = 'no'
}

$cfgm_ip_list_shell = join($config_ip_list,",")
$cfgm_name_list_shell = join($config_name_list, ",")
$amqp_ip_list_shell = join($amqp_ip_list,",")
$amqp_name_list_shell = join($amqp_name_list, ",")
$rabbit_env = "NODE_IP_ADDRESS=${host_control_ip}\nNODENAME=rabbit@${::hostname}ctl\n"

if !defined(Service['rabbitmq-server']) {
service { 'rabbitmq-server':
ensure => running,
enable => true
}
}

# Handle rabbitmq.config changes
file {'/var/lib/rabbitmq/.erlang.cookie':
mode => '0400',
Expand All @@ -50,18 +67,18 @@
content => $rabbit_env,
}
->
class {'::contrail::config::add_etc_hosts':
cfgm_ip_list_shell => $cfgm_ip_list_shell,
cfgm_name_list_shell => $cfgm_name_list_shell
class {'::contrail::add_etc_hosts':
amqp_ip_list_shell => $amqp_ip_list_shell,
amqp_name_list_shell => $amqp_name_list_shell
} ->
class {'::contrail::config::verify_rabbitmq':

class {'::contrail::verify_rabbitmq':
master => $master,
host_control_ip => $host_control_ip,
config_ip_list => $config_ip_list
amqp_ip_list => $amqp_ip_list
}
contain ::contrail::config::verify_rabbitmq
contain ::contrail::config::add_etc_hosts
contain ::contrail::verify_rabbitmq
contain ::contrail::add_etc_hosts
}

}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
class contrail::config::verify_rabbitmq (
class contrail::verify_rabbitmq (
$contrail_logoutput = $::contrail::params::contrail_logoutput,
$master,
$host_control_ip,
$config_ip_list
$amqp_ip_list
) {
file { '/etc/contrail/form_rmq_cluster.sh' :
mode => '0755',
group => root,
source => "puppet:///modules/${module_name}/form_rmq_cluster.sh"
} ->
exec { 'verify-rabbitmq' :
command => "/etc/contrail/form_rmq_cluster.sh ${master} ${host_control_ip} ${config_ip_list} & echo verify-rabbitmq >> /etc/contrail/contrail_config_exec.out",
command => "/etc/contrail/form_rmq_cluster.sh ${master} ${host_control_ip} ${amqp_ip_list} & echo verify-rabbitmq >> /etc/contrail/contrail_config_exec.out",
unless => 'grep -qx verify-rabbitmq /etc/contrail/contrail_config_exec.out',
provider => shell,
logoutput => true,
notify => Service['supervisor-support-service'],
notify => Service['rabbitmq-server'],
}
->
notify { "executed verify-rabbitmq":; }
Expand Down

0 comments on commit beda2ce

Please sign in to comment.