您将如何使用 facter 和 puppet 来确定操作系统是运行 Cent 6.x 还是 Cent 5.x ?
facter operatingsystemrelease
6.4
我只关心主要版本(6)
我曾考虑过使用 awk,但必须有一种更好的方法,对“木偶清单”更友好。
#This works, but is ugly trying to use this in a puppet manifest
facter operatingsystemrelease |awk -F. '{print $1}'
6
更新:
看起来新版本的facter有一些关于主要版本的附加信息,这些信息不在我的版本中。我的初始配置需要假设因素已过时。
facter --version
1.6.4
puppet --version
2.7.20
我尝试使用以下命令搜索可能显示主要版本的任何其他事实
facter |grep 6
有操作系统majrelease
如果您安装了 redhat-lsb-core 软件包,facter 将获得 lsb 提供的事实系列(包括lsbmajdistrelease):
注意:您至少需要Facter 1.7才能拥有
operatingsystemmajrelease
. 事实 1.6中的核心事实非常有限。我猜您正在尝试根据安装版本做出某种决定。
您可以在逻辑中使用正则表达式。
所以像:
或者如果
if
是你的风格:请记住,所有因素事实都可以在清单的全局范围变量中使用。
如果您有一个混合环境,您可能希望将其包装在以下内容中:
使用 Puppet 5.5+,您应该使用复合
os
事实的一部分,因为operatingsystemmajrelease
事实现在是一个遗留事实。这个事实的一个示例值:
另请注意,它的值是一个字符串,而不是整数,所以在进行比较时请记住这一点: