2013-10-18 30 views
5

我想配置使用Chef-solo,Berkshelf和vagrant-berkshelf插件的流浪者机器。然而,供应失败,此错误:Berkshelf食谱不会被复制到流浪者目录

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? :)

环境说明:

的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)

回答

7

Who is responsibile for copying the cookbooks to the specific Vagrant folder (Berkshelf, the vagrant-berkshelf plugin, or Vagrant)?

从A列一点点,从B柱,这两者从列得到一些帮助,一点点C.

流浪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作为应该复制到客人的食谱的来源。

+0

谢谢Jared。始终赞赏源的链接。 – kries

+0

@Jared感谢您的信息。 Chef-Solo在客人身上挂载的目录以及它包含食谱的位置在哪里?它是否在每次运行后安装并卸载? – Seperman

+2

我很疑惑这个问题是如何解决的。我在这里看到同样的问题,不知道如何解决它。 –

3

我有一个类似的问题,试图提供一个流浪箱。我以下面的方式解决了我的问题。

在Berksfile,添加以下

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

通常是“食谱/食谱名”

Berksfile当时能找到的食谱,并把它复制到berksfile的位置,这哪里是chef-独奏期待找到食谱。我希望它有帮助。