我正在尝试使用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'
所以,我想我的问题是:
环境明细:
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)
答案 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的位置,这是厨师独奏寻找食谱的地方。我希望它有所帮助。