是否可以在如下配方中引用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
文件中,我设置了如下所示的依赖关系,希望能够提取1.0.0
的{{1}},1.0.1
和1.0.2
版本。
cookbook-bar
但是当我运行它时,depends "cookbook-bar", "<= 1.0.2"
的版本CookbookNotFound
和1.0.0
仍会出现1.0.1
错误。
答案 0 :(得分:3)
您不能在节点上只下载一个版本的食谱,最高匹配依赖性约束。
如果你需要在同一次运行中使用多个版本的食谱,那么你就会遇到问题。