gpt4 book ai didi

puppet - puppet 家族核心事实是如何确定的?

转载 作者:行者123 更新时间:2023-12-04 04:52:28 27 4
gpt4 key购买 nike

我在 Suse 11 Linux 机器上使用 puppet 2.7.19 和 facter 1.6.0。 $::osfamily因子变量未设置,尽管它确实有 $::operatingsystem事实集:

$ puppet apply -e 'notify { "$::osfamily/$::operatingsystem": }'
notice: /SLES
$::osfamily 怎么样事实设定在 puppet ?我想升级到更高版本的 puppet 可以解决这个问题,但是在这个 Suse 发行版上升级很困难。

一种解决方法是全局设置因子变量(例如在/etc/profile 中):
$ export FACTER_OSFAMILY=suse
$ /usr/bin/puppet apply -e 'notify { "$::osfamily/$::operatingsystem": }'
notice: suse/SLES

有没有更好/更清洁的方法来获得这一套?

最佳答案

这是您可以采取的一种方法。在你的 puppet 树中创建一个模块,命名为 my_facts (例如)。

然后创建以下 my_osfamily.rb (事实)文件在 modules/my_facts/lib/facter/my_osfamily.rb

Facter.add("my_osfamily") do
setcode do
os = Facter.value('operatingsystem')
case os
when /CentOS|RedHat/
"redhat"
when "Ubuntu"
"debian"
when "FreeBSD"
"freebsd"
when "Darwin"
"osx"
else
os
end
end
end

现在假设你有 pluginsync在您的 puppet 节点上启用,您的自定义事实应该会自动传播并且您应该能够使用 $::my_osfamily事实根据需要。

根据您的环境设置方式,您还可以使用以下方法查询您的事实:
# facter -p | grep my_osfamily

关于puppet - puppet 家族核心事实是如何确定的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17238662/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com