![chef:knife deps - 如何指定食谱版本](https://linux22.com/image/717261/chef%EF%BC%9Aknife%20deps%20-%20%E5%A6%82%E4%BD%95%E6%8C%87%E5%AE%9A%E9%A3%9F%E8%B0%B1%E7%89%88%E6%9C%AC.png)
关于:https://docs.chef.io/knife_deps.html
随着刀架--远程选项,我可以查询我们的厨师服务器。刀具食谱清单-a将返回所有食谱版本。我如何使用刀具查询特定版本的菜谱的依赖项?我尝试了各种分隔符来将版本号附加到菜谱名称,并尝试将它们作为单独的参数。尝试深入研究 ruby 代码,发现这很难做到 - 所有这些 gem 的目的和组织都非常不清楚。
答案1
是否必须使用“knife deps”?因为您可以使用“knife search”命令来实现您的目标,如下所示:
knife search -i 'cookbooks:your-cookbook' -a cookbooks.your-cookbook.version
这将为您提供显示主机名和食谱版本的输出:
1 items found
server.name.example:
cookbooks.cs-redis.version: 0.3.2
您可以做的另一件事是使用基本食谱并根据食谱版本在节点上设置属性。
例子:
run_context.cookbook_collection.each do |key, cookbook|
node.set['base_cookbook']['cookbook_versions'][cookbook.name] = cookbook.version
end
然后您可以像这样查询节点使用的版本:
knife node show <node-name> -a base_cookbook.cookbook_versions
答案2
目前没有答案。试图夺回我的赏金!