簡體   English   中英

如何使用Berkshelf與Chef-solo?

[英]How to use Berkshelf with Chef-solo?

我正試圖與Berkshelf一起管理食譜。 這是步驟

$ berks init  # and use a custom Vagrant box image
$ vim Berksfile  # and put cookbook 'git'
$ berks install
$ vagrant up

我希望最后一步為VM配置git cookbook,但是我得到:

$ bin/vagrant up
/Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/hashie-2.0.0/lib/hashie/mash.rb:80: warning: redefining `object_id' may cause serious problems
[default] Importing base box 'Ubuntu-11.04'...
[default] Matching MAC address for NAT networking...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[Berkshelf] installing cookbooks...
[Berkshelf] Using git (2.3.0)
[Berkshelf] Using dmg (1.1.0)
[Berkshelf] Using build-essential (1.3.4)
[Berkshelf] Using yum (2.1.0)
[Berkshelf] Using windows (1.8.4)
[Berkshelf] Using chef_handler (1.1.4)
[Berkshelf] Using runit (1.0.6)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Configuring and enabling network interfaces...
[default] Setting host name...
[default] Mounting shared folders...
[default] -- v-root: /vagrant
[default] -- v-csc-1: /tmp/vagrant-chef-1/chef-solo-1/cookbooks
[default] Running provisioner: Vagrant::Provisioners::ChefSolo...
[default] Generating chef JSON and uploading...
[default] Running chef-solo...
stdin: is not a tty
[2013-02-24T12:51:04+00:00] INFO: *** Chef 10.18.2 ***
[2013-02-24T12:51:05+00:00] INFO: Setting the run_list to ["recipe[berkshelf-test::default]"] from JSON
[2013-02-24T12:51:05+00:00] INFO: Run List is [recipe[berkshelf-test::default]]
[2013-02-24T12:51:05+00:00] INFO: Run List expands to [berkshelf-test::default]
[2013-02-24T12:51:05+00:00] INFO: Starting Chef Run for ubuntu-11.04
[2013-02-24T12:51:05+00:00] INFO: Running start handlers
[2013-02-24T12:51:05+00:00] INFO: Start handlers complete.
[2013-02-24T12:51:05+00:00] ERROR: Running exception handlers
[2013-02-24T12:51:05+00:00] ERROR: Exception handlers complete
[2013-02-24T12:51:05+00:00] FATAL: Stacktrace dumped to /tmp/vagrant-chef-1/chef-stacktrace.out
[2013-02-24T12:51:05+00:00] FATAL: Chef::Exceptions::CookbookNotFound: Cookbook berkshelf-test not found. If you're loading berkshelf-test from another cookbook, make sure you configure the dependency in your metadata
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.

Vagrantfile中的廚師獨奏部分:

config.vm.provision :chef_solo do |chef|
    chef.json = {
      :mysql => {
        :server_root_password => 'rootpass',
        :server_debian_password => 'debpass',
        :server_repl_password => 'replpass'
      }
    }

    chef.run_list = [
      "recipe[berkshelf-test::default]"
    ]
  end

在這種情況下,問題在於chef.run_list中的chef.run_list - 它指示Chef從“berkshelf-test”cookbook加載“默認”配方。 如果你正在使用git cookbook進行測試,你可能需要"recipe[git::default]"

您可能還需要在require 'berkshelf/vagrant'的頂部添加require 'berkshelf/vagrant' 有關更多說明,請參閱Berkshelf主頁上的“Vagrant With Berkshelf”部分。

我收到此錯誤,根本原因是插件如何處理共享文件夾的問題。 這個問題的答案修正了它: Vagrant + Chef:配置錯誤“在虛擬機上缺少Chef所需的共享文件夾”。

rm .vagrant/machines/default/virtualbox/synced_folders
vagrant reload --provision

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM