加入收藏 | 设为首页 | 会员中心 | 我要投稿 大庆站长网 (https://www.0459zz.com/)- 科技、智能边缘云、事件网格、云计算、站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx – “include_recipe”与Vagrantfile“chef.add_recipe”.有什么不同?

发布时间:2021-01-24 08:36:59 所属栏目:Nginx 来源:互联网
导读:刚刚在我的流浪盒上运行了nginx :: source recipe,我的行为很不寻常.当我从Vagrantfile中包含一个食谱(如下所示)时,一切都像魅力, chef.add_recipe(project::nginx) chef.add_recipe(nginx::source) (project :: nginx配方非常简单.用它来覆

刚刚在我的流浪盒上运行了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"

到目前为止,我不知道这两个调用之间的行为有什么不同.这里有人知道有什么区别吗? 最佳答案 被我耍到了!厨师11功能.与它的问题存在于厨师独奏:)

要快速简历,区别在于:

> chef.add_recipe() – 加载整个cookbook上下文(所有文件,例如食谱,定义,属性……)
> include_recipe“” – 未加载不在扩展运行列表中的文件(属性,定义等).

至少有4种方法可以解决问题(将文件放入运行列表中):

> 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完全相同,即使是相同的原因.

(编辑:大庆站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读