Chef infra 如何使用手工书写的烹饪书时,在厨师?
我用的是流浪汉+厨师。我的厨师食谱做得很好。然后我安装了vagrant berkshelf插件,从那一刻起我就不能使用自己的烹饪书了。Berkshelf覆盖了cookbooks目录,当我使用它们时,chef看不到我的cookbooks。我的配置如下:Chef infra 如何使用手工书写的烹饪书时,在厨师?,chef-infra,vagrant,berkshelf,Chef Infra,Vagrant,Berkshelf,我用的是流浪汉+厨师。我的厨师食谱做得很好。然后我安装了vagrant berkshelf插件,从那一刻起我就不能使用自己的烹饪书了。Berkshelf覆盖了cookbooks目录,当我使用它们时,chef看不到我的cookbooks。我的配置如下: config.berkshelf.enabled = true config.vm.provision :chef_solo do |chef| chef.add_recipe "qbaka-frontend" end 使用此配置,che
config.berkshelf.enabled = true
config.vm.provision :chef_solo do |chef|
chef.add_recipe "qbaka-frontend"
end
使用此配置,chef只能使用Berksfile
中指定的cookbooks,但无法在cookbooks
目录中查看我的cookbooks
如何同时使用my&BerksShelf的烹饪书?您必须在
Berksfile
中指定烹饪书的路径
cookbook“工件”,路径:“/Users/reset/code/artifact cookbook”
请参见此处:vagrant berkshelf插件和berkshelf通常以烹饪书为中心。然而,厨师是以菜谱回购为中心的。安装
vagrant Berkshellf
插件鼓励您使用以食谱为中心的方法,将每本食谱视为自己的软件项目
您需要将cookbooks
目录中的每个cookbooks添加到您的Berksfile中。这里有两种方法:
Berksfile
以Ruby的形式执行,因此您可以循环并使用它:
Dir['/Users/sethvargo/cookbooks/**'].each do |path|
cookbook File.basename(path), path: path
end
这将把该目录中的每本食谱加载到您的Berksfile(从而加载到BerksShelf)- 我是Berkshelf项目的核心提交人
- 我在这个职位上为厨师工作:)
Dir.glob('custom_cookbooks/**')得到了一个glob错误。每个do | path | cookbook File.basename(path),path:path end
来自berkshellf.com:“Chef Solo provisioner的cookbook_路径属性在使用Vagrant Berkshelf插件时被劫持。从您的Berksfile解析的食谱将自动提供给您的流浪虚拟机。”
Dir['/Users/sethvargo/cookbooks/**'].each do |path|
cookbook File.basename(path), path: path
end