2014-07-09 200 views
0

我想利用廚師金屬和我現有的食譜和廚師回購(利用已經用於開發berkshelf和流浪者)廚師零你可以混合廚師零廚師,廚師 - 金屬 - 流浪(流浪)和berkshelf?

我開始在https://github.com/opscode/chef-metal#vagrant

我得提供的示例一個vagrant_linux.rb

require 'chef_metal_vagrant' 

    vagrant_box 'CentOS-6.4-x86_64' do 
     url 'http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box' 
    end 

    with_machine_options :vagrant_options => { 
     'vm.box' => 'CentOS-6.4-x86_64' 
    } 

我也有dev_server.rb

require 'chef_metal' 

with_chef_local_server :chef_repo_path => '~/workspace/git/my-chef-repo' 

machine 'dev_server' do 
    tag 'dev_server' 
    recipe 'myapp' 
    converge true 
end 

如果我把我的myapp食譜在〜/工作區/ git的/我的廚師回購/食譜,上面使用以下命令工作正常 ,我有一個無業遊民受管理VM名爲dev_server融合(應用MYAPP配方)

chef-client -z vagrant_linux.rb dev_server.rb 

但現在,我想保留我的cookbooks文件夾爲空並使用berkshelf, 目前看起來並不支持廚師零支持,是嗎? 我該怎麼做?

+0

使用無業遊民,berkshelf和無業遊民廚師零插件要走的路?比照http://jeffreyrodriguez.blogspot.fr/2014/05/provisioning-vagrant-with-chef-zero-on.html – Francois

+0

我的同事一直在實施[這樣的事情](https://github.com/t3dev/t3stacks),也許它可以幫助你啓動並運行。 – StephenKing

+0

供參考:我將我的發現記錄在我的博客http://jroller.com/francoisledroff/entry/chef_metal_experimentations_aem_test – Francois

回答

2

您可以傳遞:cookbook_path包含多個路徑,這樣一個數組:https://github.com/opscode/ec-metal/blob/master/cookbooks/ec-harness/recipes/vagrant.rb#L12-L13

with_chef_local_server :chef_repo_path => repo_path, 
    :cookbook_path => [ File.join(repo_path, 'cookbooks'), 
    File.join(repo_path, 'vendor', 'cookbooks') ] 

然後你可以使用伯克斯到供應商的上游食譜到不同的路徑(供應商/食譜/),同時把你的自己的食譜到食譜/像這樣:https://github.com/opscode/ec-metal/blob/master/Rakefile#L114

berks vendor vendor/cookbooks/ 
0

「berks vendor」命令是我通常如何做的 - 使用「berks供應商」並將自助購買的路徑添加到您的cookbook路徑。