chef-infra - 我可以引用多个版本的 Chef Recipe 吗?

标签 chef-infra chef-recipe cookbook

是否可以在菜谱中引用 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.01.0.1 ,以及 cookbook-bar1.0.2

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

但是当我运行它时,我仍然收到 cookbook- 版本 1.0.01.0.1CookbookNotFound 错误 -栏

最佳答案

你不能,只会在节点上拉取 Recipe 的一个版本,即与依赖关系约束匹配的最高版本。

如果您在同一次运行中需要多个版本的 Recipe ,则说明您在某个地方遇到了问题。

关于chef-infra - 我可以引用多个版本的 Chef Recipe 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30711116/

相关文章:

ruby - 从 Web 读取文本文件并分配给 Ruby/Chef 中的变量

ruby-on-rails - 在运行包更新时避免 RSA key 指纹

mysql - OpsWorks/Chef : multiple versions of a cookbook are required

chef-infra - 如何在 deploy_revision 提供程序中设置超时?

ruby - 使用 Chef 删除目录中早于 x 天的所有文件

linux - 在运行列表中的 Chef Recipe 执行之间保持 $PATH 变量

tomcat - 配方编译错误 : undefined method `[]' for nil:NilClass

design-patterns - 有没有好的设计模式食谱/食谱资源?

tomcat - 通过 Chef 将资源从 Amazon S3 转移到 Tomcat

git - Opscode Chef - 清理/共享/缓存副本的方法