diff options
author | Jiri Stransky <jistr@redhat.com> | 2015-05-18 14:32:49 +0200 |
---|---|---|
committer | Jiri Stransky <jistr@redhat.com> | 2015-05-18 16:43:27 +0200 |
commit | 3f7be2d62986589420d3b58397e9bb1d09ef3b24 (patch) | |
tree | 508c24724222181158c5f18ad026e2b5f5466674 /puppet | |
parent | a6aa0d70e8e13b63c3e26695915afbf14f31ba7d (diff) |
Configure HAProxy, Galera and MongoDB before start
As with RabbitMQ previously, we can hit the same race conditions between
config being written on all nodes vs. pacemaker starting the
services. Configuring the services at least one step earlier than
starting them will allow us to get rid of this race condition.
Change-Id: I78f47dfb82ca8609ed40f784d65ba92db3d411f3
Diffstat (limited to 'puppet')
-rw-r--r-- | puppet/manifests/overcloud_controller_pacemaker.pp | 127 |
1 files changed, 66 insertions, 61 deletions
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp index 8d976f07..c66460d9 100644 --- a/puppet/manifests/overcloud_controller_pacemaker.pp +++ b/puppet/manifests/overcloud_controller_pacemaker.pp @@ -69,9 +69,6 @@ if hiera('step') >= 1 { pacemaker::resource::ip { 'public_vip': ip_address => $public_vip, } - pacemaker::resource::service { 'haproxy': - clone => true, - } } Class['::pacemaker::corosync'] -> Pacemaker::Resource::Ip <| |> @@ -97,25 +94,81 @@ if hiera('step') >= 1 { content => hiera('rabbitmq::erlang_cookie'), replace => true, } + + # MongoDB + include ::mongodb::globals + + # FIXME: replace with service_manage => false on ::mongodb::server + # when this is merged: https://github.com/puppetlabs/pupp etlabs-mongodb/pull/198 + class { '::mongodb::server' : + service_ensure => undef, + service_enable => false, + } + + # Galera + if str2bool(hiera('enable_galera', 'true')) { + $mysql_config_file = '/etc/my.cnf.d/galera.cnf' + } else { + $mysql_config_file = '/etc/my.cnf.d/server.cnf' + } + $galera_nodes = downcase(hiera('galera_node_names', $::hostname)) + $galera_nodes_count = count(split($galera_nodes, ',')) + $clustercheck_password = hiera('mysql_clustercheck_password') + $mysql_root_password = hiera('mysql::server::root_password') + + $mysqld_options = { + 'mysqld' => { + 'skip-name-resolve' => '1', + 'binlog_format' => 'ROW', + 'default-storage-engine' => 'innodb', + 'innodb_autoinc_lock_mode' => '2', + 'innodb_locks_unsafe_for_binlog'=> '1', + 'query_cache_size' => '0', + 'query_cache_type' => '0', + 'bind-address' => hiera('controller_host'), + 'max_connections' => '1024', + 'open_files_limit' => '-1', + 'wsrep_provider' => '/usr/lib64/galera/libgalera_smm.so', + 'wsrep_cluster_name' => 'galera_cluster', + 'wsrep_slave_threads' => '1', + 'wsrep_certify_nonPK' => '1', + 'wsrep_max_ws_rows' => '131072', + 'wsrep_max_ws_size' => '1073741824', + 'wsrep_debug' => '0', + 'wsrep_convert_LOCK_to_trx' => '0', + 'wsrep_retry_autocommit' => '1', + 'wsrep_auto_increment_control' => '1', + 'wsrep_drupal_282555_workaround'=> '0', + 'wsrep_causal_reads' => '0', + 'wsrep_notify_cmd' => '', + 'wsrep_sst_method' => 'rsync', + } + } + + class { '::mysql::server': + create_root_user => false, + create_root_my_cnf => false, + config_file => $mysql_config_file, + override_options => $mysqld_options, + service_manage => false, + } + } if hiera('step') >= 2 { + if $pacemaker_master { + pacemaker::resource::service { 'haproxy': + clone_params => true, + } + } + if count(hiera('ntp::servers')) > 0 { include ::ntp } # MongoDB if downcase(hiera('ceilometer_backend')) == 'mongodb' { - include ::mongodb::globals - - # FIXME: replace with service_manage => false on ::mongodb::server - # when this is merged: https://github.com/puppetlabs/pupp etlabs-mongodb/pull/198 - class { '::mongodb::server' : - service_ensure => undef, - service_enable => false, - } - $mongo_node_ips = split(hiera('mongo_node_ips'), ',') $mongo_node_ips_with_port = suffix($mongo_node_ips, ':27017') $mongo_node_string = join($mongo_node_ips_with_port, ',') @@ -169,53 +222,6 @@ if hiera('step') >= 2 { } # Galera - if str2bool(hiera('enable_galera', 'true')) { - $mysql_config_file = '/etc/my.cnf.d/galera.cnf' - } else { - $mysql_config_file = '/etc/my.cnf.d/server.cnf' - } - $galera_nodes = downcase(hiera('galera_node_names', $::hostname)) - $galera_nodes_count = count(split($galera_nodes, ',')) - $clustercheck_password = hiera('mysql_clustercheck_password') - $mysql_root_password = hiera('mysql::server::root_password') - - $mysqld_options = { - 'mysqld' => { - 'skip-name-resolve' => '1', - 'binlog_format' => 'ROW', - 'default-storage-engine' => 'innodb', - 'innodb_autoinc_lock_mode' => '2', - 'innodb_locks_unsafe_for_binlog'=> '1', - 'query_cache_size' => '0', - 'query_cache_type' => '0', - 'bind-address' => hiera('controller_host'), - 'max_connections' => '1024', - 'open_files_limit' => '-1', - 'wsrep_provider' => '/usr/lib64/galera/libgalera_smm.so', - 'wsrep_cluster_name' => 'galera_cluster', - 'wsrep_slave_threads' => '1', - 'wsrep_certify_nonPK' => '1', - 'wsrep_max_ws_rows' => '131072', - 'wsrep_max_ws_size' => '1073741824', - 'wsrep_debug' => '0', - 'wsrep_convert_LOCK_to_trx' => '0', - 'wsrep_retry_autocommit' => '1', - 'wsrep_auto_increment_control' => '1', - 'wsrep_drupal_282555_workaround'=> '0', - 'wsrep_causal_reads' => '0', - 'wsrep_notify_cmd' => '', - 'wsrep_sst_method' => 'rsync', - } - } - - class { '::mysql::server': - create_root_user => false, - create_root_my_cnf => false, - config_file => $mysql_config_file, - override_options => $mysqld_options, - service_manage => false, - } - if $pacemaker_master { $sync_db = true @@ -369,8 +375,7 @@ MYSQL_HOST=localhost\n", } #END STEP 2 -if (hiera('step') >= 3 and $::hostname == downcase(hiera('bootstrap_nodeid'))) - or hiera('step') >= 4 { +if (hiera('step') >= 3 and $pacemaker_master) or hiera('step') >= 4 { include ::keystone |