是否可以在菜谱中引用 Chef 菜谱的多个版本,如下所示,其中一本菜谱 (foo) 中的菜谱引用另一本菜谱 (bar) 中菜谱的多个版本,其中版本变量在此 block 之前填充?
begin
case version
when ""
include_recipe "cookbook-bar"
when "1.0.0"
include_recipe "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6e0d0101050c010105430c0f1c2e5f405e405e" rel="noreferrer noopener nofollow">[email protected]</a>"
when "1.0.1"
include_recipe "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bcdfd3d3d7ded3d3d791deddcefc8d928c928d" rel="noreferrer noopener nofollow">[email protected]</a>"
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.0.1
,以及 cookbook-bar
的 1.0.2
。
depends "cookbook-bar", "<= 1.0.2"
但是当我运行它时,我仍然收到 cookbook- 版本
。1.0.0
和 1.0.1
的 CookbookNotFound
错误 -栏
最佳答案
你不能,只会在节点上拉取 Recipe 的一个版本,即与依赖关系约束匹配的最高版本。
如果您在同一次运行中需要多个版本的 Recipe ,则说明您在某个地方遇到了问题。
关于chef-infra - 我可以引用多个版本的 Chef Recipe 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30711116/