CentOS 7 和 Puppet 无法安装 nc

Posted

技术标签:

【中文标题】CentOS 7 和 Puppet 无法安装 nc【英文标题】:CentOS 7 and Puppet unable to install nc 【发布时间】:2015-05-16 17:46:21 【问题描述】:

我在让 puppet 强制执行包 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 已安装且最新版本

我错过了什么?

【问题讨论】:

【参考方案1】:

Nc 是指向 nmap-ncat 的链接。

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

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

你的傀儡应该是:

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

【讨论】:

很好,适用于 7,但会中断 6.6:执行“/usr/bin/yum -d 0 -e 0 -y list nmap-ncat”返回 1:错误:没有匹配的包list 我是否必须更新清单以按版本拆分,还是有其他选择? @Werner -- 这就是我要做的。并希望他们将来不会破坏该功能。 ;)【参考方案2】:
yum install nmap-ncat.x86_64

解决了我的问题

【讨论】:

yum 为我找到了 x84_64 版本,没有添加后缀 fwiw,所以我做了yum install nmap-ncat【参考方案3】:

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

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

这是一个快速的例子,可能有错别字,或者不完全有效。 但是使用系统事实,您可以看到发生了什么。

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

【讨论】:

花了我一段时间,但我现在明白了。这是对@Werner 关于@VassilisAretakis 解决方案的评论的回应,该解决方案仅适用于某些版本的操作系统,但不适用于其他版本。这样他就可以根据操作系统版本应用不同的解决方案。好的。

以上是关于CentOS 7 和 Puppet 无法安装 nc的主要内容,如果未能解决你的问题,请参考以下文章

Centos 7 Puppet Enterprise 安装 - 4433 端口上的连接被拒绝

自动化运维之centos 7上安装puppet,附工作原理图

CentOS 6.4安装Puppet

centos7安装配置puppet系统

CentOS-7下的NC探测端口命令

CentOS-7下的NC探测端口命令