Enable mongodb replicaset
This patch allows HA on mongodb for ceilometer use.
This commit is contained in:
parent
f051901824
commit
4cf8809e4b
@ -29,10 +29,20 @@
|
||||
# http://docs.mongodb.org/manual/reference/configuration-options/#nojournal
|
||||
# Defaults to false
|
||||
#
|
||||
# [*replset_members*]
|
||||
# (optional) Ceilometer Replica set members
|
||||
# Default value in params
|
||||
#
|
||||
# [*mongo_primary*]
|
||||
# (optional) MongoDB replicaset primary hostname
|
||||
# Default value in params
|
||||
#
|
||||
|
||||
class cloud::database::nosql(
|
||||
$bind_ip = $os_params::internal_netif_ip,
|
||||
$nojournal = false,
|
||||
$bind_ip = $os_params::internal_netif_ip,
|
||||
$nojournal = false,
|
||||
$replset_members = $os_params::mongo_nodes,
|
||||
$mongo_primary = $os_params::mongo_primary
|
||||
) {
|
||||
|
||||
# bind_ip should be an array
|
||||
@ -49,6 +59,28 @@ class cloud::database::nosql(
|
||||
class { 'mongodb':
|
||||
bind_ip => $bind_ip_real,
|
||||
nojournal => $nojournal,
|
||||
replset => 'ceilometer',
|
||||
}
|
||||
|
||||
exec {'check_mongodb' :
|
||||
command => "/usr/bin/mongo ${bind_ip}:27017",
|
||||
logoutput => false,
|
||||
tries => 60,
|
||||
try_sleep => 5,
|
||||
require => Service['mongodb'],
|
||||
}
|
||||
|
||||
if $::hostname == $mongo_primary and !empty($replset_members) {
|
||||
|
||||
mongodb_replset{'ceilometer':
|
||||
members => $replset_members,
|
||||
before => Anchor['mongodb setup done'],
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
anchor {'mongodb setup done' :
|
||||
require => Exec['check_mongodb'],
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -21,25 +21,27 @@ class cloud::telemetry::server(
|
||||
$ks_keystone_internal_proto = $os_params::ks_keystone_internal_proto,
|
||||
$ks_ceilometer_internal_port = $os_params::ks_ceilometer_internal_port,
|
||||
$ks_ceilometer_password = $os_params::ks_ceilometer_password,
|
||||
$ceilometer_database_connection = $os_params::ceilometer_database_connection,
|
||||
$api_eth = $os_params::api_eth,
|
||||
$mongo_nodes = $os_params::mongo_nodes,
|
||||
$mongo_primary = $os_params::mongo_primary,
|
||||
){
|
||||
|
||||
include 'cloud::telemetry'
|
||||
|
||||
$db_conn = regsubst($ceilometer_database_connection, 'mongodb:\/\/(\.*)', '\2')
|
||||
exec {'check_mongodb' :
|
||||
command => "/usr/bin/mongo ${db_conn}",
|
||||
logoutput => false,
|
||||
tries => 60,
|
||||
try_sleep => 5,
|
||||
$s_mongo_nodes = join($mongo_nodes, ',')
|
||||
$db_conn = "mongodb://${s_mongo_nodes}/ceilometer?replicaSet=ceilometer"
|
||||
|
||||
if $::hostname == $mongo_primary {
|
||||
$sync_db = true
|
||||
} else {
|
||||
$sync_db = false
|
||||
}
|
||||
Service <| title == 'mongodb' |> -> Exec['check_mongodb']
|
||||
|
||||
# Install MongoDB database
|
||||
class { 'ceilometer::db':
|
||||
database_connection => $ceilometer_database_connection,
|
||||
require => Exec['check_mongodb'],
|
||||
database_connection => $db_conn,
|
||||
sync_db => $sync_db,
|
||||
require => Anchor['mongodb setup done'],
|
||||
}
|
||||
|
||||
# Install Ceilometer-collector
|
||||
|
Loading…
x
Reference in New Issue
Block a user