刚刚在我的 Vagrant 盒子上运行了 nginx::source recipe,我的行为非常不寻常。
当我包含来自 的食谱时 Vagrant 文件 (如下),一切都像魅力一样,
chef.add_recipe("project::nginx")
chef.add_recipe("nginx::source")
(project::nginx recipe 非常简单。使用它来覆盖 nginx 说明书的默认属性)
但如果我在 的最后包含一个食谱项目::nginx (提到),一切都崩溃了:
node.default['nginx']['server_names_hash_bucket_size'] = 128
include_recipe "nginx::source"
直到现在我都不知道这两个调用之间的行为有什么不同。这里有人知道有什么区别吗?
最佳答案
被我耍到了!厨师 11 功能。它的问题仅存在于 Chef-solo 中 :)
要快速制作简历,区别在于:
至少有 4 种方法可以解决此问题(将文件放入运行列表中):
对于那些有兴趣进一步阅读的人,Chef 11 为非食谱文件引入了基于依赖的食谱加载。新的加载逻辑意味着属于cookbooks 的文件存在于cookbook_path 但不在扩展的run_list 或cookbooks 在扩展的run_list 中的依赖项将不再加载。 REF: Opscode breaking changes documentation ,如果你需要我得到的错误签名,here's完全一样的,即使是出于同样的原因。
关于nginx - "include_recipe"与 Vagrantfile "chef.add_recipe"对比。有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20361738/