我正在尝试与 Berkshelf 一起管理食谱。以下是步骤
$ berks init # and use a custom Vagrant box image
$ vim Berksfile # and put cookbook 'git'
$ berks install
$ vagrant up
我希望最后一步为 VM 配置git
说明书,但是我得到:
$ 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:警告:重新定义“object_id”可能会导致严重的问题 [默认] 导入基础框 'Ubuntu-11.04'... [默认] NAT 网络的匹配 MAC 地址... [默认] 清除任何以前设置的转发端口... [默认] 转发端口... [默认] -- 22 => 2222(适配器 1) [Berkshelf] 安装食谱... [Berkshelf] 使用 git (2.3.0) [Berkshelf] 使用 dmg (1.1.0) [Berkshelf] 使用 build-essential (1.3.4) [Berkshelf] 使用 yum (2.1.0) [Berkshelf] 使用 windows (1.8.4) [Berkshelf] 使用 chef_handler (1.1.4) [Berkshelf] 使用 runit (1.0.6) [默认] 创建共享文件夹元数据... [默认] 清除任何以前设置的网络接口... [默认] 根据配置准备网络接口... [默认] 正在启动虚拟机... [默认] 等待虚拟机启动。这可能需要几分钟。 [默认] VM 已启动并可以使用! [默认] 配置和启用网络接口... [默认] 设置主机名... [默认] 正在装载共享文件夹... [默认] -- v-root: /vagrant [默认] -- v-csc-1: /tmp/vagrant-chef-1/chef-solo-1/cookbooks [默认] 运行供应商:Vagrant::Provisioners::ChefSolo... [默认] 生成厨师 JSON 并上传... [默认] 运行厨师独奏... 标准输入:不是 tty [2013-02-24T12:51:04+00:00] 信息:***厨师 10.18.2 *** [2013-02-24T12:51:05+00:00] 信息:从 JSON 将 run_list 设置为 ["recipe[berkshelf-test::default]"] [2013-02-24T12:51:05+00:00] 信息:运行列表是 [recipe [berkshelf-test::default]] [2013-02-24T12:51:05+00:00] 信息:运行列表扩展为 [berkshelf-test::default] [2013-02-24T12:51:05+00:00] 信息:为 ubuntu-11.04 启动 Chef Run [2013-02-24T12:51:05+00:00] 信息:运行启动处理程序 [2013-02-24T12:51:05+00:00] 信息:启动处理程序完成。 [2013-02-24T12:51:05+00:00] 错误:运行异常处理程序 [2013-02-24T12:51:05+00:00] 错误:异常处理程序完成 [2013-02-24T12:51:05+00:00] 致命:Stacktrace 转储到 /tmp/vagrant-chef-1/chef-stacktrace.out [2013-02-24T12:51:05+00:00] 致命:Chef::Exceptions::CookbookNotFound:Cookbook berkshelf-test not found。如果您从另一本食谱加载 berkshelf-test,请确保在元数据中配置依赖项 厨师从未成功完成!任何错误都应该在 上面的输出。请修复您的食谱,以便它们正确完成。
Vagrantfile 中的 chef-solo 部分:
config.vm.provision :chef_solo 做 |chef| 厨师.json = { :mysql => { :server_root_password => 'rootpass', :server_debian_password => 'debpass', :server_repl_password => 'replpass' } } chef.run_list = [ “配方 [berkshelf-test::default]” ] 结尾