From 6f56649e8795ca0fada0ad078dab5093af5e5eed Mon Sep 17 00:00:00 2001 From: andreas Date: Fri, 30 Nov 2007 15:28:46 +0000 Subject: munin installation (+ test auf immer1-0) --- manifests/plugin.pp | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 manifests/plugin.pp (limited to 'manifests/plugin.pp') diff --git a/manifests/plugin.pp b/manifests/plugin.pp new file mode 100644 index 0000000..e7e22d1 --- /dev/null +++ b/manifests/plugin.pp @@ -0,0 +1,127 @@ +# plugin.pp - configure a specific munin plugin +# Copyright (C) 2007 David Schmitt +# See LICENSE for the full license granted to you. + +define munin::plugin ( + $ensure = "present", + $script_path = "/usr/share/munin/plugins", + $config = '') +{ + debug ( "munin_plugin: name=$name, ensure=$ensure, script_path=$script_path" ) + $plugin = "/etc/munin/plugins/$name" + $plugin_conf = "/etc/munin/plugin-conf.d/$name.conf" + case $ensure { + "absent": { + debug ( "munin_plugin: suppressing $plugin" ) + file { $plugin: ensure => absent, } + } + default: { + $plugin_src = $ensure ? { "present" => $name, default => $ensure } + debug ( "munin_plugin: making $plugin using src: $plugin_src" ) + file { $plugin: + ensure => "$script_path/${plugin_src}", + require => Package["munin-node"], + notify => Service["munin-node"], + } + } + } + case $config { + '': { + debug("no config for $name") + file { $plugin_conf: ensure => absent } + } + default: { + case $ensure { + absent: { + debug("removing config for $name") + file { $plugin_conf: ensure => absent } + } + default: { + debug("creating $plugin_conf") + file { $plugin_conf: + content => "[${name}]\n$config\n", + mode => 0644, owner => root, group => root, + } + } + } + } + } +} + +define munin::remoteplugin($ensure = "present", $source, $config = '') { + case $ensure { + "absent": { munin::plugin{ $name: ensure => absent } } + default: { + file { + "/var/lib/puppet/modules/munin/plugins/${name}": + source => $source, + mode => 0755, owner => root, group => root; + } + munin::plugin { $name: + ensure => $ensure, + config => $config, + script_path => "/var/lib/puppet/modules/munin/plugins", + } + } + } +} + +class munin::plugins::base { + + file { + [ "/etc/munin/plugins", "/etc/munin/plugin-conf.d" ]: + source => "puppet://$servername/munin/empty", + ensure => directory, checksum => mtime, + recurse => true, purge => true, force => true, + mode => 0755, owner => root, group => root, + notify => Service[munin-node]; + "/etc/munin/plugin-conf.d/munin-node": + ensure => present, + mode => 0644, owner => root, group => root, + notify => Service[munin-node]; + } + +} + +# handle if_ and if_err_ plugins +class munin::plugins::interfaces inherits munin::plugins::base { + + $ifs = gsub(split($interfaces, " "), "(.+)", "if_\\1") + $if_errs = gsub(split($interfaces, " "), "(.+)", "if_err_\\1") + plugin { + $ifs: ensure => "if_"; + $if_errs: ensure => "if_err_"; + } + + +} + +class munin::plugins::linux inherits munin::plugins::base { + + plugin { + [ df_abs, forks, iostat, memory, processes, cpu, df_inode, irqstats, + netstat, open_files, swap, df, entropy, interrupts, load, open_inodes, + vmstat + ]: + ensure => present; + acpi: + ensure => $acpi_available; + } + + include munin::plugins::interfaces +} + +class munin::plugins::debian inherits munin::plugins::base { + + plugin { apt_all: ensure => present; } + +} + +class munin::plugins::vserver inherits munin::plugins::base { + + plugin { + [ netstat, processes ]: + ensure => present; + } + +} -- cgit v1.2.3