X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/f6b63c0bdcfde35f28573ea4a3444daff2c1fe80..1d23c59f10b2636d9c20b3da441aa22373f88af4:/cookbooks/hardware/recipes/default.rb diff --git a/cookbooks/hardware/recipes/default.rb b/cookbooks/hardware/recipes/default.rb index 5cbb13eb0..13e24b80d 100644 --- a/cookbooks/hardware/recipes/default.rb +++ b/cookbooks/hardware/recipes/default.rb @@ -90,7 +90,7 @@ units.sort.uniq.each do |unit| source "tty.conf.erb" owner "root" group "root" - mode 0644 + mode 0o644 variables :unit => unit end @@ -131,7 +131,7 @@ if File.exist?("/etc/default/grub") source "grub.erb" owner "root" group "root" - mode 0644 + mode 0o644 variables :units => units, :entry => grub_entry notifies :run, "execute[update-grub]" end @@ -148,7 +148,7 @@ template "/etc/initramfs-tools/conf.d/mdadm" do source "initramfs-mdadm.erb" owner "root" group "root" - mode 0644 + mode 0o644 notifies :run, "execute[update-initramfs]" end @@ -168,7 +168,7 @@ if node[:lsb][:release].to_f >= 12.10 source "irqbalance.erb" owner "root" group "root" - mode 0644 + mode 0o644 end service "irqbalance" do @@ -255,7 +255,7 @@ end source "raid.default.erb" owner "root" group "root" - mode 0644 + mode 0o644 variables :devices => status_packages[status_package] end @@ -281,6 +281,45 @@ disks = if node[:hardware][:disk] [] end +intel_ssds = disks.select { |d| d[:vendor] == "INTEL" && d[:model] =~ /^SSD/ } + +nvmes = if node[:hardware][:pci] + node[:hardware][:pci].values.select { |pci| pci[:driver] == "nvme" } + else + [] + end + +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") } + end + + execute "alien-isdct" do + command "alien --to-deb 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-16_amd64.deb") } + end + + dpkg_package "isdct" do + source "#{Chef::Config[:file_cache_path]}/isdct_3.0.0.400-16_amd64.deb" + end +end + disks = disks.map do |disk| next if disk[:state] == "spun_down" @@ -321,14 +360,14 @@ if disks.count > 0 source "smartd-mailer.erb" owner "root" group "root" - mode 0755 + mode 0o755 end template "/etc/smartd.conf" do source "smartd.conf.erb" owner "root" group "root" - mode 0644 + mode 0o644 variables :disks => disks notifies :reload, "service[smartmontools]" end @@ -337,7 +376,7 @@ if disks.count > 0 source "smartmontools.erb" owner "root" group "root" - mode 0644 + mode 0o644 notifies :restart, "service[smartmontools]" end @@ -396,7 +435,7 @@ if File.exist?("/etc/mdadm/mdadm.conf") file "/etc/mdadm/mdadm.conf" do owner "root" group "root" - mode 0644 + mode 0o644 content mdadm_conf end @@ -410,7 +449,7 @@ template "/etc/modules" do source "modules.erb" owner "root" group "root" - mode 0644 + mode 0o644 end if node[:lsb][:release].to_f <= 12.10 @@ -438,7 +477,7 @@ if node[:hardware][:watchdog] source "watchdog.erb" owner "root" group "root" - mode 0644 + mode 0o644 variables :module => node[:hardware][:watchdog] end @@ -485,7 +524,7 @@ unless Dir.glob("/sys/class/hwmon/hwmon*").empty? source "sensors.conf.erb" owner "root" group "root" - mode 0644 + mode 0o644 notifies :run, "execute[/etc/sensors.d/chef.conf]" end end