From: Tom Hughes Date: Wed, 6 Nov 2013 00:45:50 +0000 (+0000) Subject: More work on automatic installation of raid tools X-Git-Url: https://git.openstreetmap.org/chef.git/commitdiff_plain/9881ff1479932d6519325ecafc7eaed67838235b More work on automatic installation of raid tools --- diff --git a/cookbooks/hardware/attributes/default.rb b/cookbooks/hardware/attributes/default.rb index 24dc2505d..6b12827ca 100644 --- a/cookbooks/hardware/attributes/default.rb +++ b/cookbooks/hardware/attributes/default.rb @@ -10,15 +10,9 @@ if node[:dmi] and node[:dmi][:system] end if node[:kernel] and node[:kernel][:modules] - if node[:kernel][:modules].include?("mpt2sas") - default[:apt][:sources] |= [ "hwraid" ] - end - - if node[:kernel][:modules].include?("megaraid_sas") - default[:apt][:sources] |= [ "hwraid" ] - end + raidmods = node[:kernel][:modules].keys & ["cciss", "mptsas", "mpt2sas", "megaraid_mm", "megaraid_sas", "aacraid"] - if node[:kernel][:modules].include?("aacraid") + unless raidmods.empty? default[:apt][:sources] |= [ "hwraid" ] end end diff --git a/cookbooks/hardware/recipes/default.rb b/cookbooks/hardware/recipes/default.rb index e9fe54e05..a60285253 100644 --- a/cookbooks/hardware/recipes/default.rb +++ b/cookbooks/hardware/recipes/default.rb @@ -40,7 +40,6 @@ case manufacturer when "HP" package "hponcfg" package "hp-health" - package "hpacucli" unit = "1" speed = "115200" when "TYAN" @@ -142,17 +141,55 @@ template "/etc/initramfs-tools/conf.d/mdadm" do notifies :run, "execute[update-initramfs]" end -if node[:kernel][:modules].include?("mpt2sas") - package "sas2ircu" - package "sas2ircu-status" -end +["cciss", "mptsas", "mpt2sas", "megaraid_mm", "megaraid_sas", "aacraid"].each do |raidmod| + case raidmod + when "cciss" + tools_package = "hpacucli" + status_package = "cciss-vol-status" + when "mptsas" + tools_package = "lsiutil" + status_package = "mpt-status" + when "mpt2sas" + tools_package = "sas2ircu" + status_package = "sas2ircu-status" + when "megaraid_mm" + tools_package = "megactl" + status_package = "megaraid-status" + when "megaraid_sas" + tools_package = "megacli" + status_package = "megaclisas-status" + when "aacraid" + tools_package = "arcconf" + status_package = "aacraid-status" + end -if node[:kernel][:modules].include?("megaraid_sas") - package "megacli" - package "megaclisas-status" -end + if node[:kernel][:modules].include?(raidmod) + package tools_package + package status_package + + template "/etc/default/#{status_package}d" do + source "raid.default.erb" + owner "root" + group "root" + mode 0644 + end + + service "#{status_package}d" do + action [ :start, :enable ] + supports :status => false, :restart => true, :reload => false + subscribes :restart, "template[/etc/default/#{status_package}d]" + end + else + package status_package do + action :purge + end + + package tools_package do + action :purge + end -if node[:kernel][:modules].include?("aacraid") - package "arcconf" - package "aacraid-status" + file "/etc/default/#{status_package}d" do + action :delete + end + end end diff --git a/cookbooks/hardware/templates/default/raid.default.erb b/cookbooks/hardware/templates/default/raid.default.erb new file mode 100644 index 000000000..e72dc9c80 --- /dev/null +++ b/cookbooks/hardware/templates/default/raid.default.erb @@ -0,0 +1 @@ +MAILTO=admins@openstreetmap.org