Berkshelf cookbook未被复制到Vagrant目录

时间:2013-10-18 04:55:03

标签: chef vagrant chef-solo berkshelf

我正在尝试使用Chef-solo,Berkshelf和vagrant-berkshelf插件来配置一个Vagrant机器。但是,配置因此错误而失败:

Berkshelf::CookbookNotFound: Cookbook <cookbook name> not found in any of the default locations

berks install成功地将所有内容安装到~/.berkshelf/cookbooks/,但是烹饪书永远不会被复制到~./berkshelf/default/vagrant/berkshelf-20131017-8441-pqghfq-default,这是Berkshelf在跟踪之前报告它正在更新的地方:

[Berkshelf] Updating Vagrant's berkshelf: '/Users/<me>/.berkshelf/default/vagrant/berkshelf-20131017-8441-pqghfq-default'

所以,我想我的问题是:

  1. 谁负责将烹饪书复制到特定的Vagrant文​​件夹(Berkshelf,vagrant-berkshelf插件或Vagrant)?今天晚上我浏览了每个回购消息来源,但未能确定这应该发生的地方。
  2. 我可以提供更多信息来帮助回答问题#1吗? :)
  3. 环境明细:

    Mac OSX 10.8 红宝石1.9.3

    vagrant -v: 1.3.5

    berks -v : Berkshelf (2.0.10)

    $: vagrant plugin list

    buff-config (0.2.0)

    mini_portile (0.5.1)

    nugrant (1.1.0)

    vagrant-berkshelf (1.3.4)

    vagrant-cachier (0.1.0)

    vagrant-omnibus (1.1.1)

    vagrant-rackspace (0.1.3)

2 个答案:

答案 0 :(得分:7)

  

谁负责将烹饪书复制到特定的Vagrant   文件夹(Berkshelf,vagrant-berkshelf插件,或Vagrant)?

A列中的一点和B列中的一点点,两者都得到了C列的帮助。

Vagrant chef-solo provisioner能够将烹饪书(+角色/数据包/等)从主机复制到访客。它通过在主机上创建目录然后在VM中安装该目录来实现此目的。

vagrant-berkshelf插件首先creates a directory on the host,然后使用vanilla Berkshelf功能export到该目录的所有相关食谱。

最后,vagrant-berkshelf插件告诉Chef-Solo供应商use the directory it has created作为应该复制给客人的烹饪书的来源。

答案 1 :(得分:3)

我有一个类似的问题,试图配置一个流浪盒。我用以下方式解决了我的问题。

在Berksfile中,添加以下内容

'cookbook-name', path: "<path to cookbook>"

通常是&#34; cookbooks / cookbook-name&#34;

然后,Berksfile能够找到这本食谱并将其复制到berksfile的位置,这是厨师独奏寻找食谱的地方。我希望它有所帮助。