diff options
Diffstat (limited to 'puppet')
-rw-r--r-- | puppet/controller-puppet.yaml | 16 | ||||
-rw-r--r-- | puppet/hieradata/controller.yaml | 4 | ||||
-rw-r--r-- | puppet/manifests/overcloud_controller.pp | 41 |
3 files changed, 39 insertions, 22 deletions
diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml index 4b41c0a4..c3efc82e 100644 --- a/puppet/controller-puppet.yaml +++ b/puppet/controller-puppet.yaml @@ -59,6 +59,9 @@ parameters: default: 'br-ex' description: Interface where virtual ip will be assigned. type: string + CorosyncAuthKey: + description: Auth encryption key for corosync + type: string Debug: default: '' description: Set to True to enable debugging on all services. @@ -433,6 +436,7 @@ resources: bootstack_nodeid: {get_attr: [Controller, name]} controller_host: {get_attr: [Controller, networks, ctlplane, 0]} controller_virtual_ip: {get_param: VirtualIP} + corosync_auth_key: {get_param: CorosyncAuthKey} neutron_enable_tunneling: {get_param: NeutronEnableTunnelling} heat.watch_server_url: list_join: @@ -556,12 +560,6 @@ resources: - ':35357/v2.0' ceilometer_metering_secret: {get_param: CeilometerMeteringSecret} ceilometer_password: {get_param: CeilometerPassword} - ceilometer_dsn: - list_join: - - '' - - - 'mysql://ceilometer:unset@' - - {get_param: VirtualIP} - - '/ceilometer' snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName} snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword} nova_password: {get_param: NovaPassword} @@ -628,6 +626,10 @@ resources: bootstack_nodeid: {get_input: bootstack_nodeid} controller_host: {get_input: controller_host} #local-ipv4 + # Pacemaker + corosync::authkey: {get_input: corosync_auth_key} + corosync::bind_address: {get_input: controller_host} + # Swift swift::proxy::proxy_local_net_ip: {get_input: controller_host} swift::proxy::authtoken::auth_uri: {get_input: keystone_auth_uri} @@ -774,7 +776,6 @@ resources: ceilometer::api::keystone_password: {get_input: ceilometer_password} ceilometer::api::keystone_auth_uri: {get_input: keystone_auth_uri} ceilometer::api::keystone_identity_uri: {get_input: keystone_identity_uri} - ceilometer::db::database_connection: {get_input: ceilometer_dsn} ceilometer::agent::auth::auth_password: {get_input: ceilometer_password} snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name} snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password} @@ -802,6 +803,7 @@ resources: rabbitmq::erlang_cookie: {get_input: rabbit_cookie} # Misc + memcached::listen_ip: {get_input: controller_host} neutron_public_interface_ip: {get_input: neutron_public_interface_ip} ntp::servers: {get_input: ntp_servers} control_virtual_interface: {get_input: control_virtual_interface} diff --git a/puppet/hieradata/controller.yaml b/puppet/hieradata/controller.yaml index 523e9dbe..11ec5e27 100644 --- a/puppet/hieradata/controller.yaml +++ b/puppet/hieradata/controller.yaml @@ -72,6 +72,10 @@ heat::engine::heat_stack_user_role: '' heat::engine::configure_delegated_roles: false heat::engine::trusts_delegated_roles: [] +# pacemaker +corosync::authkey_source: 'string' +corosync::multicast_address: broadcast + mysql::server::manage_config_file: true tripleo::loadbalancer::keystone_admin: true diff --git a/puppet/manifests/overcloud_controller.pp b/puppet/manifests/overcloud_controller.pp index f26d82a1..a6518c00 100644 --- a/puppet/manifests/overcloud_controller.pp +++ b/puppet/manifests/overcloud_controller.pp @@ -31,6 +31,23 @@ if hiera('step') >= 1 { controller_hosts => $controller_node_ips, } + class { '::corosync': + quorum_members => $controller_node_ips, + } + corosync::service { 'pacemaker': + version => '0', + } + service { 'pacemaker': + ensure => running, + require => Service['corosync'], + } + cs_property { 'stonith-enabled': + value => 'false', + } + cs_property { 'no-quorum-policy': + value => 'ignore', + } + } if hiera('step') >= 2 { @@ -44,13 +61,13 @@ if hiera('step') >= 2 { include ::mongodb::server $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, ',') - 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, - } + $mongodb_replset = hiera('mongodb::server::replset') + $ceilometer_mongodb_conn_string = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}" + if downcase(hiera('bootstrap_nodeid')) == $::hostname { + mongodb_replset { $mongodb_replset : + members => $mongo_node_ips_with_port, } } @@ -122,14 +139,6 @@ if hiera('step') >= 2 { dbname => $heat_dsn[6], allowed_hosts => $allowed_hosts, } - $ceilometer_dsn = split(hiera('ceilometer::db::database_connection'), '[@:/?]') - class { 'ceilometer::db::mysql': - user => $ceilometer_dsn[3], - password => $ceilometer_dsn[4], - host => $ceilometer_dsn[5], - dbname => $ceilometer_dsn[6], - allowed_hosts => $allowed_hosts, - } $rabbit_nodes = split(downcase(hiera('rabbit_node_names', $::hostname)), ',') if count($rabbit_nodes) > 1 { @@ -342,13 +351,15 @@ if hiera('step') >= 3 { # Ceilometer include ::ceilometer include ::ceilometer::api - include ::ceilometer::db include ::ceilometer::agent::notification include ::ceilometer::agent::central include ::ceilometer::alarm::notifier include ::ceilometer::alarm::evaluator include ::ceilometer::expirer include ::ceilometer::collector + class { '::ceilometer::db' : + database_connection => $ceilometer_mongodb_conn_string, + } class { 'ceilometer::agent::auth': auth_url => join(['http://', hiera('controller_virtual_ip'), ':5000/v2.0']), } |