我有一个包含许多食谱的厨师存储库,以及一个包含以下内容的 Berksfile:
Dir.glob('cookbooks/*/').each do |path|
cookbook File.basename(path), :path => path
end
cookbook 'supervisor', '~> 0.5.1', :github => "opscode-cookbooks/supervisor"
这包括来自存储库的每本说明书,以及来自 github 存储库的外部说明书。默认情况下,Berkshelf 会在 opscode 社区站点中搜索任何未列出的说明书。
而不是这个,我想:
- 禁用此默认设置,并且永远不要在外部站点中搜索缺少的依赖项。
- 将此默认值替换为本地路径,以便我可以删除
Dir.glob
添加我的每个本地食谱的路径。
作为旁注,我完全意识到将食谱保存在 chef 存储库中被认为是一种反模式。在这种情况下,这不是我可以改变的,虽然 Berkshelf 不是为处理这个问题而设计的,但能够关闭默认站点以便不会从用户无法控制的源中隐式提取任何食谱仍然很有用。