我通过从我的模块中调用一个模块(pdxcat/collectd)来扩展它。基本模块更喜欢将 Amazon Linux OSfamily 标识为“Redhat”,但由 puppet 在 Amazon Linux OS 上安装的因子将操作系统报告为“Linux”。
我想通过在调用基本模块之前将 osfamily 的因子值从 Linux 覆盖到 Redhat 来纠正这个错误。
我在 mymodule/lib/facter 中的 osfamily.rb 是
Facter.add('osfamily') do
setcode do
case Facter.value(:operatingsystem)
when "Amazon"
"RedHat"
else
Facter.value("kernel")
end
end
end
但问题是,我无法覆盖 osfamily 值。即使在从 osfamily.rb 加载事实之后,osfamily 仍然被报告为“Linux”而不是“Redhat”。
我的代码对于像or这样的新值可以正常工作,但对于像osfamilytest
oroperatingsystemreleasetest
这样的现有值不能。osfamily
operatingsystemrelease
Puppet Version: 2.7.25
Facter Version: 1.6.18
Operating System:
Amazon Linux 2015.03
Puppet installation steps:
yum install puppet