【问题标题】:How to get the version of chef-client running on windows node using knife search query如何使用刀搜索查询在 Windows 节点上运行 Chef-client 的版本
【发布时间】:2020-08-13 10:38:32
【问题描述】:

如何使用刀搜索查询获取在 windows 节点上运行的 chef-client 版本?例如对于 linux 节点,这很容易,因为下面会得到想要的结果。

knife search node "name:xyz" -a name -a ipaddress -a os -a platform -a platform_family -a packages.**chef** -c knife.rb

windows节点有类似的方法吗??

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    列出所有端点的厨师客户端版本:

    knife node list | xargs -n 1 knife node show -a chef_packages.chef.version   
    

    列出单个端点厨师客户端版本:

    knife node show nodename -a chef_packages.chef.version
    

    【讨论】:

      【解决方案2】:

      通过在ssh 上执行chef-client --version 获取厨师客户端版本。类似:

      knife ssh "name:xyz" "chef-client -v" -a name
      

      另一种方式,它将主厨客户端版本存储为node attribute,然后通过search 检索它

      node.default['chef-client']['version'] = Gem.loaded_specs['chef'].version
      

      或通过运行chef-client -v 并将其存储为节点属性。

      你可能也对chef-client updater感兴趣

      【讨论】:

      • 已经有一个节点属性具有版本:chef_packages.chef.version
      • @DracoAter:在本地模式下使用 chef ruby​​gem 时是否适用于 chef-client?
      • 我相信是这样,但我没试过。它至少可以在厨师零的测试厨房中使用。
      • @DracoAter: chef-zero 的厨房正在使用 chef 二进制包而不是 ruby​​gem 运行
      【解决方案3】:

      @Mr. : 这将是一项耗时的活动,并且还需要凭据。但是我找到了另一种方法,即如下运行刀搜索。并过滤所需包的结果。

      knife search node "name:<name>" -a name -a ipaddress  -a packages  -c knife.rb
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-20
        • 1970-01-01
        • 2013-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多