aboutsummaryrefslogtreecommitdiffstats
path: root/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'puppet')
-rw-r--r--puppet/controller-puppet.yaml16
-rw-r--r--puppet/hieradata/controller.yaml4
-rw-r--r--puppet/manifests/overcloud_controller.pp41
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']),
}