刚刚在我的流浪盒上运行了Nginx :: source recipe,我的行为很不寻常.
当我从Vagrantfile中包含一个食谱(如下所示)时,一切都像魅力,
chef.add_recipe(“project::Nginx”)
chef.add_recipe(“Nginx::source”)
(project :: Nginx配方非常简单.用它来覆盖Nginx cookbook的默认属性)
但如果我在项目的最后包含一个食谱:: Nginx(提到过),一切都会崩溃:
node.default['Nginx']['server_names_hash_bucket_size'] = 128
include_recipe "Nginx::source"
要快速简历,区别在于:
> chef.add_recipe() – 加载整个cookbook上下文(所有文件,例如食谱,定义,属性……)
> include_recipe“” – 未加载不在扩展运行列表中的文件(属性,定义等).
> include_attribute – 显式包含所需的属性文件.
> Metadata.rb->依赖 – 如果您的食谱使用其他食谱中的食谱,请将该食谱放入Metadata.rb的依赖部分,并加载所有文件.
> chef.add_recipe() – 通过Vagrantfile加载配方. (这里仅提供参考)
> berkshelf – 你也可以使用这本食谱经理来解决这个问题.这是Stackoverflow thread about this exact problem和some Docs
对于那些有兴趣进一步阅读的人,Chef 11为非配方文件引入了基于依赖性的菜谱加载.新的加载逻辑意味着将不再加载属于cookbook的文件,这些文件存在于cookbook_path中但不在扩展的run_list中或扩展的run_list中的cookbook的依赖项中. REF:Opscode breaking changes documentation,如果你需要我得到的错误的签名,here’s完全相同,即使是相同的原因.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。