X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/edd65c1932befad27142d97ac39c6709f12a715b..45dde9418dd342bb1a632d82559201c0b3becf1a:/cookbooks/hardware/recipes/default.rb diff --git a/cookbooks/hardware/recipes/default.rb b/cookbooks/hardware/recipes/default.rb index 2fa629adf..1c8a50c45 100644 --- a/cookbooks/hardware/recipes/default.rb +++ b/cookbooks/hardware/recipes/default.rb @@ -1,8 +1,8 @@ # -# Cookbook Name:: hardware +# Cookbook:: hardware # Recipe:: default # -# Copyright 2012, OpenStreetMap Foundation +# Copyright:: 2012, OpenStreetMap Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -84,7 +84,7 @@ when "TYAN Computer Corporation" units << "0" when "Supermicro" case product - when "H8DGU", "X9SCD", "X7DBU", "X7DW3", "X9DR7/E-(J)LN4F", "X9DR3-F", "X9DRW", "SYS-1028U-TN10RT+", "SYS-2028U-TN24R4T+", "Super Server" + when "H8DGU", "X9SCD", "X7DBU", "X7DW3", "X9DR7/E-(J)LN4F", "X9DR3-F", "X9DRW", "SYS-1028U-TN10RT+", "SYS-2028U-TN24R4T+", "SYS-1029P-WTRT", "Super Server" units << "1" else units << "0" @@ -247,7 +247,27 @@ else end end -["cciss-vol-status", "mpt-status", "sas2ircu-status", "megaraid-status", "megaclisas-status", "aacraid-status"].each do |status_package| +if status_packages.include?("cciss-vol-status") + template "/usr/local/bin/cciss-vol-statusd" do + source "cciss-vol-statusd.erb" + owner "root" + group "root" + mode 0o755 + notifies :restart, "service[cciss-vol-statusd]" + end + + systemd_service "cciss-vol-statusd" do + description "Check cciss_vol_status values in the background" + exec_start "/usr/local/bin/cciss-vol-statusd" + private_tmp true + protect_system "full" + protect_home true + no_new_privileges true + notifies :restart, "service[cciss-vol-statusd]" + end +end + +%w[cciss-vol-status mpt-status sas2ircu-status megaraid-status megaclisas-status aacraid-status].each do |status_package| if status_packages.include?(status_package) package status_package @@ -333,6 +353,9 @@ disks = disks.map do |disk| munin = "#{device}-#{Regexp.last_match(1)}:#{Regexp.last_match(2)}" end end + elsif disk[:device] =~ %r{^/dev/(nvme\d+)n\d+$} + device = Regexp.last_match(1) + munin = device elsif disk[:device] device = disk[:device].sub("/dev/", "") munin = device @@ -348,7 +371,7 @@ disks = disks.map do |disk| ] end -disks = disks.compact +disks = disks.compact.uniq if disks.count.positive? package "smartmontools" @@ -512,3 +535,12 @@ unless Dir.glob("/sys/class/hwmon/hwmon*").empty? notifies :run, "execute[/etc/sensors.d/chef.conf]" end end + +if node[:hardware][:shm_size] + mount "/dev/shm" do + action [:mount, :enable] + device "tmpfs" + fstype "tmpfs" + options "rw,nosuid,nodev,size=#{node[:hardware][:shm_size]}" + end +end