CentOS 7和Puppet无法安装nc

Wer*_*ner 17 yum puppet netcat centos7

我有一个奇怪的问题,让木偶强制执行包nc.

我通过以下方式手动安装: yum install nc

我看到puppet通过以下方式执行:
/usr/bin/yum -d 0 -e 0 -y list nc
返回:错误:没有匹配的要列出的包

我也通过命令行对此进行了测试:
yum list nc
返回错误:没有匹配的要列出的包

然而,当我这样做:
yum install nc
返回:包2:已安装nmap-ncat-6.40-4.el7.x86_64和最新版本

我错过了什么?

小智 19

Nc是nmap-ncat的链接.

在你的木偶中使用nmap-ncat会很好,因为NC是nmap-ncat的虚拟名称.

Puppet无法理解链接/虚拟名称

你的傀儡应该是:

package {
  'nmap-ncat':
    ensure => installed;
}
Run Code Online (Sandbox Code Playgroud)


小智 8

我不知道什么是木偶

这个

yum install nmap-ncat.x86_64
Run Code Online (Sandbox Code Playgroud)

解决我的问题,希望有所帮助

  • yum在没有添加后缀fwiw的情况下为我找到了x84_64版本,所以我做了`yum install nmap-ncat`。 (2认同)

小智 3

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

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}
}
Run Code Online (Sandbox Code Playgroud)

这是一个快速的例子,可能有拼写错误,或者不完全有效。但使用系统事实你可以看到会发生什么。

操作系统事实为您提供了 3 个主要变量:名称、系列、版本...在版本下,您有一个小字典,其中包含有关您的操作系统的更多信息!结合这些,您可以创建案例来实现您的目标。