CentOS 7 和 Puppet 无法安装 nc

CentOS 7 and Puppet unable to install nc

我在让 puppet 强制执行程序包 nc 时遇到了一个奇怪的问题。

最后我通过以下方式手动安装了它:yum install nc

我看到 puppet 通过:
/usr/bin/yum -d 0 -e 0 -y list nc
Returns: 错误: 没有要列出的匹配包

我也通过命令行测试过这个:
yum list nc
Returns 错误:没有要列出的匹配包

然而,当我这样做时:
yum install nc
Returns: Package 2:nmap-ncat-6.40-4.el7.x86_64 已经安装并且是最新版本

我错过了什么?

Nc 是 link 到 nmap-ncat。

最好在你的 puppet 中使用 nmap-ncat,因为 NC 是 nmap-ncat 的虚拟名称。

Puppet 无法理解 links/virtualnames

你的人偶应该是:

package {
  'nmap-ncat':
    ensure => installed;
}

您可以在这种情况下使用案例来分隔版本 一个示例是使用 FACT os(return 是您系统的版本等... 命令因子将 return 详细信息:

root@sytem# facter -p os
{"name"=>"CentOS", "family"=>"RedHat", "release"=>{"major"=>"7", "minor"=>"0", "full"=>"7.0.1406"}}

#we capture release hash
$curr_os = $os['release']

case $curr_os['major'] {
  '7': { .... something }
  *: {something}
}

这是一个快速示例,可能有典型值os,或者不完全有效。 但是使用系统事实你可以看到会发生什么。

OS事实为您提供了 3 个主要变量:姓名、家庭、版本...在 版本 下您有一本 小词典 ,其中包含有关您 os 的更多信息!结合这些,您可以创建案例来满足您的目标。

yum install nmap-ncat.x86_64

解决了我的问题