Chef infra 获取已安装烹饪书及其版本的列表

Chef infra 获取已安装烹饪书及其版本的列表,chef-infra,Chef Infra,我有一个通过chef配置的服务器。现在我想知道这个服务器上到底安装了哪些cookbook版本 作为一名厨师新手,我使用了grep,如下所示,但我想知道是否有某种官方方式可以获取这些信息 sudo grep -E '^version|"version":' /var/chef/cache/cookbooks/*/metadata* 是否有chef命令列出所有已安装的烹饪书及其版本 首先,没有官方的厨师方法来获取安装的烹饪书版本列表 但您可以使用或等工具,放置您需要的所有烹饪书。尝试以下方法: k

我有一个通过chef配置的服务器。现在我想知道这个服务器上到底安装了哪些cookbook版本

作为一名厨师新手,我使用了
grep
,如下所示,但我想知道是否有某种官方方式可以获取这些信息

sudo grep -E '^version|"version":' /var/chef/cache/cookbooks/*/metadata*

是否有
chef
命令列出所有已安装的烹饪书及其版本

首先,没有官方的厨师方法来获取安装的烹饪书版本列表

但您可以使用或等工具,放置您需要的所有烹饪书。

尝试以下方法:

knife cookbook list | awk '{printf "knife cookbook show %s\n",$1}'| bash
将打印出与每本食谱相关的版本。例如:

java   1.31.0  1.29.0
mysql   6.0.22  6.0.21
rbac   1.0.3
smf   2.2.6
yum   3.6.0
yum-mysql-community   0.1.17

以上部分的变化

sudo grep -o -e '\"version\"\:\"[a-zA-Z0-9.]*\"' -e '\"version\"\: \"[a-zA-Z0-9.]*\"' /var/chef/cache/cookbooks/*/metadata.json

这在CentOS 6.6上对我有效:

for filename in `ls /var/cache/chef/cookbooks`; \
do \
    echo -n "$filename "; \
    grep version /var/cache/chef/cookbooks/$filename/metadata.rb; \
done | column -t

这不是列出了可以安装的烹饪书吗?我想知道的是当前安装了什么。刀子食谱列表-->列出已安装的食谱;刀子食谱显示-->在中显示食谱的所有版本argument@muhqu该命令生成一组刀子命令,显示安装在chef服务器上的每个烹饪书的所有版本。没错,但这不是我想要的。我想知道哪些烹饪书(和版本)已部署到“节点”。例如,chef client运行的位置。@user674669不同的问题。试试这个,我在CentOS 6.6上遇到了这个错误:grep:/var/chef/cache/cookbooks/*/metadata.json:没有这样的文件或目录