【问题标题】:CentOS 7 and Puppet unable to install ncCentOS 7 和 Puppet 无法安装 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 已安装且最新版本

我错过了什么?

【问题讨论】:

    标签: puppet yum netcat centos7


    【解决方案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 解决方案的评论的回应,该解决方案仅适用于某些版本的操作系统,但不适用于其他版本。这样他就可以根据操作系统版本应用不同的解决方案。好的。
    猜你喜欢
    • 1970-01-01
    • 2020-08-04
    • 2019-03-02
    • 2021-01-03
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    相关资源
    最近更新 更多