fuel-plugin-ci/puppet-manifests/modules/fuel_project/manifests/roles/zabbix/server.pp

60 lines
1.9 KiB
Puppet

# Class: fuel_project::roles::zabbix::server
#
class fuel_project::roles::zabbix::server (
$mysql_replication_password = '',
$mysql_replication_user = 'repl',
$mysql_slave_host = undef,
$maintenance_script = '/usr/share/zabbix-server-mysql/maintenance.sh',
$maintenance_script_config = '/root/.my.cnf',
$server_role = 'master', # master || slave
$slack_emoji_ok = ':smile:',
$slack_emoji_problem = ':frowning:',
$slack_emoji_unknown = ':ghost:',
$slack_post_username = '',
$slack_web_hook_url = '',
) {
class { '::fuel_project::common' :}
class { '::zabbix::server' :}
::zabbix::server::alertscript { 'slack.sh' :
template => 'fuel_project/zabbix/slack.sh.erb',
require => Class['::zabbix::server'],
}
::zabbix::server::alertscript { 'zabbkit.sh' :
template => 'fuel_project/zabbix/zabbkit.sh.erb',
require => Class['::zabbix::server'],
}
if ($server_role == 'master' and $mysql_slave_host) {
mysql_user { "${mysql_replication_user}@${mysql_slave_host}" :
ensure => 'present',
password_hash => mysql_password($mysql_replication_password),
}
mysql_grant { "${mysql_replication_user}@${mysql_slave_host}/*.*" :
ensure => 'present',
options => ['GRANT'],
privileges => ['REPLICATION SLAVE'],
table => '*.*',
user => "${mysql_replication_user}@${mysql_slave_host}",
}
file { $maintenance_script :
ensure => 'present',
owner => 'root',
group => 'root',
mode => '0755',
content => template('fuel_project/roles/zabbix/server/maintenance.sh.erb'),
require => Class['::zabbix::server'],
}
cron { 'zabbix-maintenance' :
ensure => 'present',
command => "${maintenance_script} 2>&1 | logger -t zabbix-maintenance",
weekday => 'Wednesday',
hour => '15',
}
}
}