X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/009bb6625414a6c93deb7c65a5764d23bb02598d..d1be18e9426db54d3cf367855ee95fd8ed117e3b:/cookbooks/hardware/recipes/default.rb diff --git a/cookbooks/hardware/recipes/default.rb b/cookbooks/hardware/recipes/default.rb index 6a324a36e..620c7d58b 100644 --- a/cookbooks/hardware/recipes/default.rb +++ b/cookbooks/hardware/recipes/default.rb @@ -120,6 +120,16 @@ unless unit.nil? end end +# if we need a different / special kernel version to make the hardware +# work (e.g: https://github.com/openstreetmap/operations/issues/45) then +# ensure that we have the package installed. the grub template will +# make sure that this is the default on boot. +unless node[:hardware][:grub][:kernel] == :latest + package "linux-image-#{node[:hardware][:grub][:kernel]}-generic" + package "linux-image-extra-#{node[:hardware][:grub][:kernel]}-generic" + package "linux-headers-#{node[:hardware][:grub][:kernel]}-generic" +end + if File.exist?("/etc/default/grub") execute "update-grub" do action :nothing @@ -191,7 +201,7 @@ node[:kernel][:modules].each_key do |modname| when "mptsas" tools_packages << "lsiutil" # status_packages["mpt-status"] ||= [] - when "mpt2sas" + when "mpt2sas", "mpt3sas" tools_packages << "sas2ircu" status_packages["sas2ircu-status"] ||= [] when "megaraid_mm" @@ -327,11 +337,13 @@ if status_packages["sas2ircu-status"] Dir.glob("/sys/class/scsi_host/host*") do |host| driver = File.new("#{host}/proc_name").read.chomp - next unless driver == "mpt2sas" + next unless driver == "mpt2sas" || driver == "mpt3sas" bus = host.sub("/sys/class/scsi_host/host", "") Dir.glob("/sys/bus/scsi/devices/#{bus}:0:*/scsi_generic/*").each do |sg| + next if File.directory?("#{sg}/../../block") + disks << { :device => File.basename(sg) } end end