100 lines
2.4 KiB
Puppet
100 lines
2.4 KiB
Puppet
# == Class icingaweb2::mod::graphite
|
|
#
|
|
class icingaweb2::mod::graphite (
|
|
$git_repo = 'https://github.com/philiphoy/icingaweb2-module-graphite.git',
|
|
$git_revision = undef,
|
|
$graphite_base_url = 'http://graphite.com/render?',
|
|
$graphite_metric_prefix = undef,
|
|
$service_name_template = undef,
|
|
$host_name_template = undef,
|
|
$install_method = 'git',
|
|
$pkg_deps = undef,
|
|
$pkg_ensure = 'present',
|
|
$web_root = $::icingaweb2::params::web_root,
|
|
) {
|
|
require ::icingaweb2
|
|
|
|
validate_absolute_path($web_root)
|
|
validate_re($install_method,
|
|
[
|
|
'git',
|
|
]
|
|
)
|
|
|
|
File {
|
|
require => Class['::icingaweb2::config'],
|
|
owner => $::icingaweb2::config_user,
|
|
group => $::icingaweb2::config_group,
|
|
mode => $::icingaweb2::config_file_mode,
|
|
}
|
|
|
|
file {
|
|
"${web_root}/modules/graphite":
|
|
ensure => directory,
|
|
mode => $::icingaweb2::config_dir_mode;
|
|
|
|
"${::icingaweb2::config_dir}/modules/graphite":
|
|
ensure => directory,
|
|
mode => $::icingaweb2::config_dir_mode;
|
|
}
|
|
|
|
Ini_Setting {
|
|
ensure => present,
|
|
require => File["${::icingaweb2::config_dir}/modules/graphite"],
|
|
path => "${::icingaweb2::config_dir}/modules/graphite/config.ini",
|
|
}
|
|
|
|
ini_setting { 'base_url':
|
|
section => 'graphite',
|
|
setting => 'base_url',
|
|
value => $graphite_base_url,
|
|
}
|
|
|
|
if $graphite_metric_prefix {
|
|
ini_setting { 'metric_prefix':
|
|
section => 'graphite',
|
|
setting => 'metric_prefix',
|
|
value => $graphite_metric_prefix,
|
|
}
|
|
}
|
|
|
|
if $service_name_template {
|
|
ini_setting { 'service_name_template':
|
|
section => 'graphite',
|
|
setting => 'service_name_template',
|
|
value => $service_name_template,
|
|
}
|
|
}
|
|
|
|
if $host_name_template {
|
|
ini_setting { 'host_name_template':
|
|
section => 'graphite',
|
|
setting => 'host_name_template',
|
|
value => $host_name_template,
|
|
}
|
|
}
|
|
|
|
file { "${::icingaweb2::config_dir}/enabledModules/graphite":
|
|
ensure => link,
|
|
target => '/usr/share/icingaweb2/modules/graphite'
|
|
}
|
|
|
|
|
|
if $install_method == 'git' {
|
|
if $pkg_deps {
|
|
package { $pkg_deps:
|
|
ensure => $pkg_ensure,
|
|
before => Vcsrepo['graphite'],
|
|
}
|
|
}
|
|
|
|
vcsrepo { 'graphite':
|
|
ensure => latest,
|
|
path => "${web_root}/modules/graphite",
|
|
provider => 'git',
|
|
revision => $git_revision,
|
|
source => $git_repo,
|
|
}
|
|
}
|
|
}
|
|
|