60 lines
1.9 KiB
Puppet
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',
|
|
}
|
|
}
|
|
}
|