我可以引用 Chef 食谱的多个版本吗?

Can I reference multiple versions of a Chef cookbook?

是否可以在一个食谱中引用 Chef 食谱的多个版本,如下所示,其中一个食谱 (foo) 中的一个食谱引用了另一个食谱 (bar) 中一个食谱的多个版本,其中之前填充了版本变量这个街区?

begin
    case version
    when ""
        include_recipe "cookbook-bar"
    when "1.0.0"
        include_recipe "cookbook-bar@1.0.0"
    when "1.0.1"
        include_recipe "cookbook-bar@1.0.1"
    else
        raise "Invalid Version: " + version
    end
rescue Chef::Exceptions::CookbookNotFound
    raise "The Specified Cookbook Was Not Found: cookbook-foo-bar@" + version
end

metadata.rb 文件中,我设置了如下依赖关系,希望能引入 cookbook-bar1.0.01.0.11.0.2 版本.

depends          "cookbook-bar", "<= 1.0.2"

但是当我 运行 它时,对于 cookbook-bar1.0.01.0.1 版本,我仍然得到 CookbookNotFound 错误。

你不能,只有一个版本的说明书会被拉下到节点上,最高匹配依赖约束。

如果您在同一本 运行 中需要一本食谱的多个版本,那您的某个地方就有问题了。