puppet-monasca/manifests/vertica/config.pp

244 lines
6.8 KiB
Puppet

#
# Class for vertica specific files
#
# === Parameters
#
# [*api_pool*]
# name of the resource pool for monasca api process
#
# [*api_pool_mem_size*]
# memory size for api resource pool
#
# [*api_pool_max_mem_size*]
# max memory size for api resource pool
#
# [*api_pool_planned_con*]
# planned concurrency for api resource pool
#
# [*api_pool_max_con*]
# max concurrency for api resource pool
#
# [*api_pool_runtime_priority*]
# runtime priority for api resource pool (LOW, MEDIUM..)
#
# [*api_pool_runtime_priority_thresh*]
# runtime priority threshold for api resource pool (# of seconds)
#
# [*api_pool_priority*]
# priority threshold api resource pool
#
# [*api_pool_exec_parallel*]
# execution parallelism for api resource pool
#
# [*db_admin_password*]
# database admin password
#
# [*db_group*]
# name of the database group
#
# [*db_user*]
# name of the database user
#
# [*metrics_schema*]
# location of the metrics schema/projections file
#
# [*monitor_password*]
# database monitor user password
#
# [*monitor_user*]
# database monitor user name
#
# [*pers_pool*]
# name of the resource pool for monasca persister process
#
# [*pers_pool_mem_size*]
# memory size for persister resource pool
#
# [*pers_pool_max_mem_size*]
# max memory size for persister resource pool
#
# [*pers_pool_planned_con*]
# planned concurrency for persister resource pool
#
# [*pers_pool_max_con*]
# max concurrency for persister resource pool
#
# [*pers_pool_runtime_priority*]
# runtime priority for persister resource pool (LOW, MEDIUM..)
#
# [*pers_pool_runtime_priority_thresh*]
# runtime priority threshold for persister resource pool (# of seconds)
#
# [*pers_pool_priority*]
# priority threshold persister resource pool
#
# [*pers_pool_exec_parallel*]
# execution parallelism for persister resource pool
#
# [*virtual_env*]
# location of python virtual environment to install to for any
# python utilities
#
class monasca::vertica::config (
$api_pool = 'api_pool',
$api_pool_mem_size = '5G',
$api_pool_max_mem_size = '15G',
$api_pool_planned_con = '2',
$api_pool_max_con = '4',
$api_pool_runtime_priority = 'MEDIUM',
$api_pool_runtime_priority_thresh = '2',
$api_pool_priority = '50',
$api_pool_exec_parallel = '2',
$db_user = 'dbadmin',
$db_group = 'verticadba',
$db_admin_password = unset,
$metrics_schema = 'puppet:///modules/monasca/vertica/mon_metrics_schema.sql',
$monitor_password = unset,
$monitor_user = 'monitor',
$pers_pool = 'persister_pool',
$pers_pool_mem_size = '5G',
$pers_pool_max_mem_size = '15G',
$pers_pool_planned_con = '2',
$pers_pool_max_con = '4',
$pers_pool_runtime_priority = 'MEDIUM',
$pers_pool_runtime_priority_thresh = '2',
$pers_pool_priority = '60',
$pers_pool_exec_parallel = '1',
$virtual_env = '/var/lib/vertica',
) {
include monasca::params
$api_db_user = $::monasca::params::api_db_user
$api_db_password = $::monasca::params::api_db_password
$pers_db_user = $::monasca::params::pers_db_user
$pers_db_password = $::monasca::params::pers_db_password
$files = 'puppet:///modules/monasca/vertica/'
$templates = 'monasca/vertica'
$install_dir = '/var/vertica'
$alarms_schema = 'mon_alarms_schema.sql'
$grants_schema = 'mon_grants.sql'
$config_schema = 'mon_schema.sql'
$users_schema = 'mon_users.sql'
$cluster_script = 'create_mon_db_cluster.sh'
$single_node_script = 'create_mon_db.sh'
$prune_script_name = 'prune_vertica.py'
$prune_script = "${virtual_env}/bin/${prune_script_name}"
$partition_drop_script_name = 'drop_vertica_partitions.py'
$partition_drop_script = "${virtual_env}/bin/${partition_drop_script_name}"
file { $install_dir:
ensure => directory,
owner => $db_user,
group => $db_group,
mode => '0755',
}
file { "${install_dir}/${alarms_schema}":
ensure => file,
source => "${files}/${alarms_schema}",
mode => '0644',
owner => $db_user,
group => $db_group,
require => File[$install_dir],
}
file { '/usr/sbin/vsql':
ensure => file,
content => template("${templates}/vsql.erb"),
mode => '0755',
owner => $db_user,
group => $db_group,
require => File[$install_dir],
}
python::virtualenv { $virtual_env :
owner => 'root',
group => 'root',
before => [File[$prune_script], File[$partition_drop_script]],
require => [Package['virtualenv'],Package['python-dev']],
}
file { $prune_script:
ensure => file,
content => template("${templates}/${prune_script_name}.erb"),
mode => '0755',
owner => $db_user,
group => $db_group,
require => File[$install_dir],
}
file { $partition_drop_script:
ensure => file,
content => template("${templates}/${partition_drop_script_name}.erb"),
mode => '0755',
owner => $db_user,
group => $db_group,
require => File[$install_dir],
}
file { '/usr/sbin/update_vertica_stats.sh':
ensure => file,
source => "${files}/update_vertica_stats.sh",
mode => '0755',
owner => $db_user,
group => $db_group,
require => File[$install_dir],
}
file { "${install_dir}/${grants_schema}":
ensure => file,
source => "${files}/${grants_schema}",
mode => '0644',
owner => $db_user,
group => $db_group,
require => File[$install_dir],
}
file { "${install_dir}/mon_metrics_schema.sql":
ensure => file,
source => $metrics_schema,
mode => '0644',
owner => $db_user,
group => $db_group,
require => File[$install_dir],
}
file { "${install_dir}/${config_schema}":
ensure => file,
content => template("${templates}/${config_schema}.erb"),
mode => '0644',
owner => $db_user,
group => $db_group,
require => File[$install_dir],
}
file { "${install_dir}/${users_schema}":
ensure => file,
content => template("${templates}/${users_schema}.erb"),
mode => '0644',
owner => $db_user,
group => $db_group,
require => File[$install_dir],
}
file { "${install_dir}/${cluster_script}":
ensure => file,
content => template("${templates}/${cluster_script}.erb"),
mode => '0755',
owner => $db_user,
group => $db_group,
require => File[$install_dir],
}
file { "${install_dir}/${single_node_script}":
ensure => file,
content => template("${templates}/${single_node_script}.erb"),
mode => '0755',
owner => $db_user,
group => $db_group,
require => File[$install_dir],
}
}