}
}
-$enable_pacemaker = str2bool(hiera('enable_pacemaker'))
-$enable_keepalived = !$enable_pacemaker
-if $::hostname == downcase(hiera('bootstrap_nodeid')) {
- $pacemaker_master = true
-} else {
- $pacemaker_master = false
-}
-
if hiera('step') >= 1 {
+ create_resources(sysctl::value, hiera('sysctl_settings'), {})
+
$controller_node_ips = split(hiera('controller_node_ips'), ',')
class { '::tripleo::loadbalancer' :
controller_hosts => $controller_node_ips,
- manage_vip => $enable_keepalived,
- }
-
- if $enable_pacemaker {
- $pacemaker_cluster_members = regsubst(hiera('controller_node_ips'), ',', ' ', 'G')
- user { 'hacluster':
- ensure => present,
- } ->
- class { '::pacemaker':
- hacluster_pwd => hiera('hacluster_pwd'),
- } ->
- class { '::pacemaker::corosync':
- cluster_members => $pacemaker_cluster_members,
- setup_cluster => $pacemaker_master,
- }
- class { '::pacemaker::stonith':
- disable => true,
- }
- if $pacemaker_master {
- $control_vip = hiera('tripleo::loadbalancer::controller_virtual_ip')
- pacemaker::resource::ip { 'control_vip':
- ip_address => $control_vip,
- }
- $public_vip = hiera('tripleo::loadbalancer::public_virtual_ip')
- pacemaker::resource::ip { 'public_vip':
- ip_address => $public_vip,
- }
- pacemaker::resource::systemd { 'haproxy':
- clone => true,
- }
- }
-
- Class['::pacemaker::corosync'] -> Pacemaker::Resource::Systemd <| |>
+ manage_vip => true,
}
}
if downcase(hiera('ceilometer_backend')) == 'mongodb' {
include ::mongodb::globals
- if $enable_pacemaker {
- $mongodb_service_ensure = undef
- } else {
- $mongodb_service_ensure = 'running'
- }
-
- class {'::mongodb::server' :
- service_ensure => $mongodb_service_ensure,
- }
- $mongo_node_ips = split(hiera('mongo_node_ips'), ',')
- $mongo_node_ips_with_port = suffix($mongo_node_ips, ':27017')
+ include ::mongodb::server
+ $mongo_node_ips_with_port = suffix(hiera('mongo_node_ips'), ':27017')
$mongo_node_string = join($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 {
-
- if $enable_pacemaker {
- pacemaker::resource::systemd { 'mongod' :
- options => "op start timeout=120s",
- clone => true,
- before => Exec['mongodb-ready'],
- }
- # NOTE (spredzy) : The replset can only be run
- # once all the nodes have joined the cluster.
- $mongodb_cluster_ready_command = join(suffix(prefix($mongo_node_ips, '/bin/nc -w1 '), ' 27017 < /dev/null'), ' && ')
- exec { 'mongodb-ready' :
- command => $mongodb_cluster_ready_command,
- timeout => 600,
- tries => 60,
- try_sleep => 10,
- before => Mongodb_replset[$mongodb_replset],
- }
-
- }
-
mongodb_replset { $mongodb_replset :
members => $mongo_node_ips_with_port,
}
}
# Redis
- $redis_node_ips = split(hiera('redis_node_ips'), ',')
+ $redis_node_ips = hiera('redis_node_ips')
$redis_master_hostname = downcase(hiera('bootstrap_nodeid'))
if $redis_master_hostname == $::hostname {
config_file => $mysql_config_file,
override_options => {
'mysqld' => {
- 'bind-address' => hiera('controller_host')
- }
+ 'bind-address' => hiera('mysql_bind_host'),
+ 'max_connections' => '1024',
+ 'open_files_limit' => '-1',
+ },
}
}
# FIXME: this should only occur on the bootstrap host (ditto for db syncs)
# Create all the database schemas
# Example DSN format: mysql://user:password@host/dbname
- $allowed_hosts = ['%',hiera('controller_host')]
+ $allowed_hosts = ['%',hiera('mysql_bind_host')]
$keystone_dsn = split(hiera('keystone::database_connection'), '[@:/?]')
class { 'keystone::db::mysql':
user => $keystone_dsn[3],
}
}
- if $enable_pacemaker {
- # the module ignores erlang_cookie if cluster_config is false
- file { '/var/lib/rabbitmq/.erlang.cookie':
- ensure => 'present',
- owner => 'rabbitmq',
- group => 'rabbitmq',
- mode => '0400',
- content => hiera('rabbitmq::erlang_cookie'),
- replace => true,
- } ->
+ $rabbit_nodes = hiera('rabbit_node_ips')
+ if count($rabbit_nodes) > 1 {
class { '::rabbitmq':
- service_manage => false,
- environment_variables => {
- 'RABBITMQ_NODENAME' => "rabbit@$::hostname",
- },
+ config_cluster => true,
+ cluster_nodes => $rabbit_nodes,
+ tcp_keepalive => false,
+ config_kernel_variables => hiera('rabbitmq_kernel_variables'),
+ config_variables => hiera('rabbitmq_config_variables'),
+ environment_variables => hiera('rabbitmq_environment'),
}
- if $pacemaker_master {
- pacemaker::resource::ocf { 'rabbitmq':
- resource_name => 'heartbeat:rabbitmq-cluster',
- options => 'set_policy=\'ha-all ^(?!amq\.).* {"ha-mode":"all"}\'',
- clone => true,
- require => Class['::rabbitmq'],
- }
+ rabbitmq_policy { 'ha-all@/':
+ pattern => '^(?!amq\.).*',
+ definition => {
+ 'ha-mode' => 'all',
+ },
}
} else {
- $rabbit_nodes = split(hiera('rabbit_node_ips'), ',')
- if count($rabbit_nodes) > 1 {
- class { '::rabbitmq':
- config_cluster => true,
- cluster_nodes => $rabbit_nodes,
- }
- rabbitmq_policy { 'ha-all@/':
- pattern => '^(?!amq\.).*',
- definition => {
- 'ha-mode' => 'all',
- },
- }
- } else {
- include ::rabbitmq
- }
+ include ::rabbitmq
}
# pre-install swift here so we can build rings
include ::neutron
include ::neutron::server
- include ::neutron::agents::dhcp
include ::neutron::agents::l3
+ include ::neutron::agents::dhcp
+ class { 'neutron::agents::metadata':
+ auth_url => join(['http://', hiera('controller_virtual_ip'), ':35357/v2.0']),
+ }
file { '/etc/neutron/dnsmasq-neutron.conf':
content => hiera('neutron_dnsmasq_options'),
}
class { 'neutron::plugins::ml2':
- flat_networks => split(hiera('neutron_flat_networks'), ','),
+ flat_networks => split(hiera('neutron_flat_networks'), ','),
tenant_network_types => [hiera('neutron_tenant_network_type')],
- type_drivers => [hiera('neutron_tenant_network_type')],
+ type_drivers => [hiera('neutron_tenant_network_type')],
}
-
class { 'neutron::agents::ml2::ovs':
- bridge_mappings => split(hiera('neutron_bridge_mappings'), ','),
- tunnel_types => split(hiera('neutron_tunnel_types'), ','),
- }
-
- class { 'neutron::agents::metadata':
- auth_url => join(['http://', hiera('controller_virtual_ip'), ':35357/v2.0']),
+ bridge_mappings => split(hiera('neutron_bridge_mappings'), ','),
+ tunnel_types => split(hiera('neutron_tunnel_types'), ','),
}
Service['neutron-server'] -> Service['neutron-dhcp-service']
include ::heat::api_cloudwatch
include ::heat::engine
+ # Horizon
+ $vhost_params = { add_listen => false }
+ class { 'horizon':
+ cache_server_ip => hiera('memcache_node_ips', '127.0.0.1'),
+ vhost_extra_params => $vhost_params,
+ }
+
$snmpd_user = hiera('snmpd_readonly_user_name')
snmp::snmpv3_user { $snmpd_user:
authtype => 'MD5',