+
+sensors_fan = false
+sensors_temp = false
+sensors_volt = false
+
+Dir.glob("/sys/class/hwmon/hwmon*").each do |hwmon|
+ hwmon = "#{hwmon}/device" unless File.exists?("#{hwmon}/name")
+
+ sensors_fan = true unless Dir.glob("#{hwmon}/fan*_input").empty?
+ sensors_temp = true unless Dir.glob("#{hwmon}/temp*_input").empty?
+ sensors_volt = true unless Dir.glob("#{hwmon}/in*_input").empty?
+end
+
+if sensors_fan || sensors_temp || sensors_volt
+ package "lm-sensors"
+end
+
+if sensors_fan
+ munin_plugin "sensors_fan" do
+ target "sensors_"
+ end
+else
+ munin_plugin "sensors_fan" do
+ action :delete
+ end
+end
+
+if sensors_temp
+ munin_plugin "sensors_temp" do
+ target "sensors_"
+ end
+else
+ munin_plugin "sensors_temp" do
+ action :delete
+ end
+end
+
+if sensors_volt
+ munin_plugin "sensors_volt" do
+ target "sensors_"
+ conf "sensors_volt.erb"
+ end
+else
+ munin_plugin "sensors_volt" do
+ action :delete
+ end
+end
+
+node[:block_device].each do |name,attributes|
+ if attributes[:vendor] == "ATA"
+ munin_plugin "smart_#{name}" do
+ target "smart_"
+ conf "smart.erb"
+ conf_variables :disk => name
+ end
+ else
+ munin_plugin "smart_#{name}" do
+ action :delete
+ end
+ end
+end
+