Initial version of raid module

This commit is contained in:
Ossi Salmi 2013-07-11 17:40:43 +03:00
parent 027ecc1fce
commit 3f8205cce6
2 changed files with 33 additions and 0 deletions

29
raid/lib/facter/raid.rb Normal file
View file

@ -0,0 +1,29 @@
require 'set'
Facter.add(:raid) do
confine :kernel => :linux
setcode do
raid = Set.new
mdstat = "/proc/mdstat"
if File.exists?(mdstat)
File.readlines(mdstat).each do |line|
if line =~ /^md[0-9]+/
raid << "linux-md"
break
end
end
end
modules = "/proc/modules"
if File.exists?(modules)
File.readlines(modules).each do |line|
case line
when /^cciss\s/,/^hpsa\s/
raid << "smartarray"
when /^megaraid_sas\s/
raid << "megaraid"
end
end
end
raid.sort.join(',')
end
end

33
raid/manifests/init.pp Normal file
View file

@ -0,0 +1,33 @@
# Install tools for detected raid controllers.
#
class raid::tools {
if $::raid {
$controllers = split($::raid, ',')
if "smartarray" in $controllers {
include raid::tools::smartarray
}
}
}
# Install HP SmartArray tools.
#
class raid::tools::smartarray {
case $::operatingsystem {
"centos","redhat": {
include yum::repo::hpspp
package { "hpacucli":
ensure => installed,
require => Yum::Repo["hpspp"],
}
}
default: {
fail("raid::tools::smartarray not supported in ${::operatingsystem}")
}
}
}