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 端口上的连接被拒绝