0
我试图在Puppet中找到一种方法来获取我的FreeBSD存储服务器的当前zpool容量数量,将它们存储在自定义事实中,并在容量达到“太高水平。最近的比赛我的问题从来就发现迄今: Returning multiple custom facts with puppet Facter木偶:所有自定义事实都得到所有结果
这向我指出这个解决方案:
operatingsystem = Facter.value('operatingsystem')
case operatingsystem
when "FreeBSD"
present_zpools = IO.popen('zpool list -H -o name').read.chomp
if ! present_zpools.empty?
Facter.add(:zpools) do
setcode do
zpools = IO.popen('for i in $(zpool list -H -o name); do echo $i; done').read.chomp.split("\n")
end
end
def addZpoolCapacityFact(zpool)
zpool_capacity = IO.popen('zpool get -H -o value capacity #{zpool}').read.tr('%','').chomp
Facter.add("capacity_" + zpool) do
setcode do
zpool_capacity
end
end
end
zpools = Facter.value(:zpools)
zpools.each do |zpool|
addZpoolCapacityFact(zpool)
end
end
end
但doesn't相当产生的结果,我期待,例如:
capacity_pool1: 10 30
capacity_pool2: 10 30
当我真的很期待:
capacity_pool1: 10
capacity_pool2: 30
我做错了什么?