X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/90a349e0bc558441e65156eabb585c578d93fbfd..d4372e33947631aacc74a1e98c4a10c1556eb4a1:/cookbooks/hardware/recipes/default.rb diff --git a/cookbooks/hardware/recipes/default.rb b/cookbooks/hardware/recipes/default.rb index 1d5be55cc..4c1daa9db 100644 --- a/cookbooks/hardware/recipes/default.rb +++ b/cookbooks/hardware/recipes/default.rb @@ -8,7 +8,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -55,11 +55,8 @@ case manufacturer when "HP" package "hponcfg" - # Downgrade hp-health to 10.0.0.1.3-4. as 10.40-1815.49 has issues with reliable startup package "hp-health" do action :install - version "10.0.0.1.3-4." - options "--force-yes" notifies :restart, "service[hp-health]" end @@ -86,9 +83,10 @@ end # Remove legacy HP G4 support which breaks modern hp-health 10.4 if manufacturer == "HP" - %w[/opt/hp/hp-health/bin/hpasmd /usr/lib/libhpasmintrfc.so.3.0 %/usr/lib/libhpasmintrfc.so.3 /usr/lib/libhpasmintrfc.so].each do |filename| + %w[/opt/hp/hp-health/bin/hpasmd /usr/lib/libhpasmintrfc.so.3.0 /usr/lib/libhpasmintrfc.so.3 /usr/lib/libhpasmintrfc.so].each do |filename| file filename do action :delete + manage_symlink_source false end end @@ -203,16 +201,34 @@ service "lldpd" do supports :status => true, :restart => true, :reload => true end +if node[:hardware][:mcelog][:enabled] + package "mcelog" + + %w[bus cache dimm iomca page socket-memory unknown].each do |trigger| + template "/etc/mcelog/#{trigger}-error-trigger.local" do + source "mcelog-trigger.erb" + owner "root" + group "root" + mode 0o755 + end + end + + service "mcelog" do + action [:start, :enable] + supports :status => true, :restart => true, :reload => false + end +end + tools_packages = [] status_packages = {} node[:kernel][:modules].each_key do |modname| case modname when "cciss" - tools_packages << "hpssacli" + tools_packages << "ssacli" status_packages["cciss-vol-status"] ||= [] when "hpsa" - tools_packages << "hpssacli" + tools_packages << "ssacli" status_packages["cciss-vol-status"] ||= [] when "mptsas" tools_packages << "lsiutil" @@ -246,7 +262,7 @@ node[:block_device].each do |name, attributes| end end -%w[hpssacli lsiutil sas2ircu megactl megacli arcconf].each do |tools_package| +%w[ssacli lsiutil sas2ircu megactl megacli arcconf].each do |tools_package| if tools_packages.include?(tools_package) package tools_package else @@ -318,30 +334,22 @@ intel_nvmes = nvmes.select { |pci| pci[:vendor_name] == "Intel Corporation" } if !intel_ssds.empty? || !intel_nvmes.empty? package "unzip" - package "alien" - - remote_file "#{Chef::Config[:file_cache_path]}/DataCenterTool_3_0_0_Linux.zip" do - source "https://downloadmirror.intel.com/23931/eng/DataCenterTool_3_0_0_Linux.zip" - end - execute "unzip-DataCenterTool" do - command "unzip DataCenterTool_3_0_0_Linux.zip isdct-3.0.0.400-15.x86_64.rpm" - cwd Chef::Config[:file_cache_path] - user "root" - group "root" - not_if { File.exist?("#{Chef::Config[:file_cache_path]}/isdct-3.0.0.400-15.x86_64.rpm") } + remote_file "#{Chef::Config[:file_cache_path]}/Intel_SSD_Data_Center_Tool_3.0.13_Linux.zip" do + source "https://downloadmirror.intel.com/27863/eng/Intel_SSD_Data_Center_Tool_3.0.13_Linux.zip" end - execute "alien-isdct" do - command "alien --to-deb isdct-3.0.0.400-15.x86_64.rpm" + execute "#{Chef::Config[:file_cache_path]}/Intel_SSD_Data_Center_Tool_3.0.13_Linux.zip" do + command "unzip Intel_SSD_Data_Center_Tool_3.0.13_Linux.zip isdct_3.0.13.400-17_amd64.deb" cwd Chef::Config[:file_cache_path] user "root" group "root" - not_if { File.exist?("#{Chef::Config[:file_cache_path]}/isdct_3.0.0.400-16_amd64.deb") } + not_if { File.exist?("#{Chef::Config[:file_cache_path]}/isdct_3.0.13.400-17_amd64.deb") } end dpkg_package "isdct" do - source "#{Chef::Config[:file_cache_path]}/isdct_3.0.0.400-16_amd64.deb" + version "3.0.13.400-17" + source "#{Chef::Config[:file_cache_path]}/isdct_3.0.13.400-17_amd64.deb" end end @@ -419,7 +427,7 @@ if disks.count.positive? # an Areca controller as they only allow one thing to # talk to the controller at a time and smartd will # throw errors if it clashes with munin - disks = disks.reject { |disk| disk[:smart] && disk[:smart].start_with?("areca,") } + disks = disks.reject { |disk| disk[:smart]&.start_with?("areca,") } disks.each do |disk| munin_plugin "smart_#{disk[:munin]}" do