你如何使用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已过时.
facter --version 1.6.4 puppet --version 2.7.20
facter |grep 6
解决方法
有操作系统的发布
% facter operatingsystemmajrelease 6
如果你安装了redhat-lsb-core软件包,那么facter也会获得lsb提供的事实系列(包括lsbmajdistrelease):
% facter |grep ^lsb lsbdistcodename => Final lsbdistdescription => CentOS release 6.4 (Final) lsbdistid => CentOS lsbdistrelease => 6.4 lsbmajdistrelease => 6 lsbrelease => :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
注意:您至少需要使用Facter 1.7才能运行systemmajrelease. Core facts in Facter 1.6非常有限.