Berkshelf:只挂一个特定的食谱

时间:2016-08-02 17:44:19

标签: chef knife cookbook berkshelf

我正在使用Chef为ELK堆栈创建一个自定义的食谱。

我在Chef超市找到了一本ELK堆栈食谱,我试图使用Berkshelf将其作为依赖项下载。

我的Berksfile包含:

source 'https://supermarket.chef.io'

metadata

cookbook 'elkstack', '~> 6.0.4'

metadata.rb

name             'myelkstack'
maintainer       'YOUR_COMPANY_NAME'
maintainer_email 'YOUR_EMAIL'
license          'All rights reserved'
description      'Installs/Configures cmselkstack'
long_description  IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version          '0.1.0'
depends          'elkstack'

我打算在本地运行这本食谱,所以我使用berks vendor代替berks install。当我运行berks vendor时,我希望下载依赖项,但它会挂起:

$ berks vendor /home/pviana/berks 
Resolving cookbook dependencies...
Fetching 'cmselk' from source at .
Fetching cookbook index from https://supermarket.chef.io...

但是,如果我运行knife cookbook site download elkstack,它会完美运行并下载v6.0.4。此外,如果我将食谱从elkstack更改为另一本食谱(以及相应的版本),该命令将起作用并下载所有依赖项。

我有可能错过一些东西吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我尝试构建的食谱非常复杂(elkstack),并要求用户在运行Berksfile之前手动编辑berks vendor。除非仔细计算出依赖关系,否则默认情况下会出现这种挂起行为。