如何使用 knife 搜索查询在 windows 节点上获取 chef-client 运行 的版本

How to get the version of chef-client running on windows node using knife search query

如何使用 knife 搜索查询在 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-client --version over ssh获取chef-client版本。类似于:

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

另一种方式,它将 chef-client 版本存储为 node attribute and then retrive it via search

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

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

您可能也对chef-client updater

感兴趣

@先生: 这将非常耗时 activity 并且还需要凭据。但是我找到了另一种方法,即 运行 刀搜索,如下所示。并过滤所需包的结果。

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

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

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

列出单个端点 Chef 客户端版本:

knife node show nodename -a chef_packages.chef.version