我正在使用流浪汉+厨师。我的厨师食谱非常完美。然后我安装了vagrant-berkshelf插件,从那一刻起我无法使用自己的烹饪书。 Berkshelf覆盖了cookbook目录,当我使用它时,厨师看不到我的食谱。我的配置是这样的:
config.berkshelf.enabled = true
config.vm.provision :chef_solo do |chef|
chef.add_recipe "qbaka-frontend"
end
使用此配置,Chef只能使用Berksfile
中指定的食谱,但无法在cookbooks
目录中查看我的食谱。
我如何与我的同时工作? Berkshelf的食谱?
答案 0 :(得分:43)
vagrant-berkshelf
插件和Berkshelf一般都是以食谱为中心的。然而,厨师以食谱 - 回购为中心。安装vagrant-berkshelf
插件鼓励您使用以烹饪书为中心的方法,将每个食谱视为自己的软件项目。
您需要将cookbooks
目录中的每个cookbook添加到Berksfile中。这里有几种方法:
如果您只需要一两本烹饪书,只需使用Berkshelf path location添加它们:
cookbook 'bacon', path: '~/cookbooks/bacon'
如果你想要所有你的食谱,你可以在这里利用Ruby。一个鲜为人知的秘密是Berksfile
被执行为Ruby,所以你可以循环并变得神奇:
Dir['/Users/sethvargo/cookbooks/**'].each do |path|
cookbook File.basename(path), path: path
end
这会将该目录中的每个食谱加载到您的Berksfile(以及Berkshelf)
来源:
答案 1 :(得分:3)
您必须在Berksfile
中指定食谱的路径。
cookbook "artifact", path: "/Users/reset/code/artifact-cookbook"