From 6465fd8dca9cf73c625109e1ea78fb53f2d56d50 Mon Sep 17 00:00:00 2001 From: Marcel Haerry Date: Wed, 15 Apr 2009 12:00:48 +0200 Subject: finally implemented snmp client --- manifests/client.pp | 26 ++++++++++++++++++++------ templates/snmpclient.erb | 10 ++++++++++ 2 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 templates/snmpclient.erb diff --git a/manifests/client.pp b/manifests/client.pp index c59369b..9524edf 100644 --- a/manifests/client.pp +++ b/manifests/client.pp @@ -38,13 +38,27 @@ define munin::register() } } -define munin::register_snmp() +# snmp_testplugin: the plugin we use to test if it's set +define munin::register_snmp( + $snmpd_testplugin = 'load' +) { - @@file { "munin_snmp_${name}": path => "${NODESDIR}/${name}", - ensure => present, - content => template("munin/snmpclient.erb"), - tag => 'munin', - } + $munin_port_real = $munin_port ? { '' => 4949, default => $munin_port } + $munin_host_real = $munin_host ? { + '' => '*', + 'fqdn' => '*', + default => $munin_host + } + exec{"register_snmp_munin_for_${name}": + command => "munin-node-configure-snmp ${name} | sh", + unless => "test -e /etc/munin/plugins/snmp_${name}_${snmpd_testplugin}", + } + @@file { "munin_snmp_${name}": path => "${NODESDIR}/${name}", + ensure => present, + content => template("munin/snmpclient.erb"), + require => Exec["register_snmp_munin_for_${name}"], + tag => 'munin', + } } class munin::client::base { diff --git a/templates/snmpclient.erb b/templates/snmpclient.erb new file mode 100644 index 0000000..44ecc6d --- /dev/null +++ b/templates/snmpclient.erb @@ -0,0 +1,10 @@ +<% + # Downcase all information + dom = domain.downcase + host = hostname.downcase + fhost = name.downcase +%> +### This syntax can be extended, it might get better ... +#<%= dom %> snmp -> <%= fhost %> +[<%= fhost %>] # snmp box + address <%= munin_host_real %> -- cgit v1.2.3