From 1c3bd1feaa2988003a7189bfc1fe4cd9ea580259 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Wed, 18 Mar 2015 12:01:20 -0400 Subject: puppet: implement MongoDB on controller nodes This patch aims to configure MongoDB server on controller nodes with Puppet. It also create a default replicaset for Ceilometer, so MongoDB can be highly available when multiple controllers are run. Change-Id: I3c1ff06ebc3c9dac44fc790caaea711d0eba4bb7 --- puppet/controller-puppet.yaml | 3 ++- puppet/hieradata/controller.yaml | 2 ++ puppet/manifests/overcloud_controller.pp | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml index 780c8cfa..fedfe931 100644 --- a/puppet/controller-puppet.yaml +++ b/puppet/controller-puppet.yaml @@ -719,7 +719,8 @@ resources: keystone::public_bind_host: {get_input: controller_host} keystone::admin_bind_host: {get_input: controller_host} keystone::debug: {get_input: debug} - + # MongoDB + mongodb::server::bind_ip: {get_input: controller_host} # MySQL admin_password: {get_input: admin_password} enable_galera: {get_input: enable_galera} diff --git a/puppet/hieradata/controller.yaml b/puppet/hieradata/controller.yaml index 47f358a9..523e9dbe 100644 --- a/puppet/hieradata/controller.yaml +++ b/puppet/hieradata/controller.yaml @@ -11,6 +11,8 @@ rabbitmq::port: '5672' rabbitmq::package_source: undef rabbitmq::repos_ensure: false +mongodb::server::replset: tripleo + # service tenant nova::api::admin_tenant_name: 'service' glance::api::keystone_tenant: 'service' diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp index 3e3f2e70..0541fa4e 100644 --- a/puppet/manifests/overcloud_controller.pp +++ b/puppet/manifests/overcloud_controller.pp @@ -39,6 +39,21 @@ if hiera('step') >= 2 { include ::ntp } + # MongoDB + include ::mongodb::globals + include ::mongodb::server + $mongo_node_ips = split(downcase(hiera('mongo_node_ips')), ',') + $mongo_node_ips_with_port = suffix($mongo_node_ips, ':27017') + + if count($mongo_node_ips) > 1 { + if downcase($::hostname) == hiera('bootstrap_nodeid') { + $mongodb_replset = hiera('mongodb::server::replset') + mongodb_replset { $mongodb_replset : + members => $mongo_node_ips_with_port, + } + } + } + if str2bool(hiera('enable_galera', 'true')) { $mysql_config_file = '/etc/my.cnf.d/galera.cnf' } else { -- cgit 1.2.3-korg