Chef infra 如何使用Berkshell管理组织回购?

Chef infra 如何使用Berkshell管理组织回购?,chef-infra,vagrant,berkshelf,Chef Infra,Vagrant,Berkshelf,我是Berkshelf的超级粉丝,我已经发布了一些社区烹饪书,使用了它,而且非常棒 现在,我开始了一个新的厨师项目,我也开始了这个项目 但我发现在项目中使用它有一些困惑/困难 以下内容位于Berksfile中: site :opscode cookbook 'mediawiki', github: 'millisami/chef-mediawiki' cookbook 'sp-mediawiki', path: 'site-cookbooks/sp-mediawiki' 我已经在站点cook

我是Berkshelf的超级粉丝,我已经发布了一些社区烹饪书,使用了它,而且非常棒

现在,我开始了一个新的厨师项目,我也开始了这个项目

但我发现在项目中使用它有一些困惑/困难

以下内容位于Berksfile中:

site :opscode

cookbook 'mediawiki', github: 'millisami/chef-mediawiki'
cookbook 'sp-mediawiki', path: 'site-cookbooks/sp-mediawiki'
我已经在
站点cookbooks
文件夹中生成了我的应用程序cookbook

当我安装berks时,它会出错:

An error occurred while reading the Berksfile: no metadata.rb or metadata.json found at \
/Users/millisami/Code/chef-sp/site-cookbooks/sp-mediawiki
现在我想知道在哪里生成我的应用程序
sp mediawiki
cookbook

如果只创建一个新的
berks cookbook sp mediawiki
,它将类似于库cookbook

使用
图书管理员厨师
我正在另一个项目中使用它,可以完美地完成这种流程

所以,我想说的是:

  • Berkshelf有助于开发个人食谱
  • 图书管理员厨师长擅长管理顶级编排

  • 我是对的/错的吗?你们是如何使用Berkshelf来管理组织的chef repo的?

    我相信这里有答案:

    正如我在GitHub上的回复中所说:

    如果您的
    chef repo
    顶部有一个
    Berksfile
    ,您可以使用它来管理您所有的食谱依赖项

    例如,假设我正在编写一本依赖于apache2食谱的应用程序食谱。我想在我的
    Berksfile
    中添加以下内容:

    site :opscode
    
    cookbook 'apache2', '~> x.x.x' # optional version constraint
    
    然后运行
    berks install
    命令来安装本食谱。因为它是一个库,它安装在你的机器“某处”,你不应该费心去寻找它。现在,您将生成应用程序烹饪书(我们称之为
    my-apache2
    ):

    这将为您创建骨架。然后,您可以在
    metadata.rb
    中添加
    apache2
    作为此新食谱的依赖项:

    name 'my-apache2'
    # suppressed
    version '1.0.0'
    
    depends 'apache2'
    
    您的目录结构如下所示:

    chef-repo
      |  Berksfile
      |_ cookbooks
        |_ my-apache2
    
    请注意,
    apache
    cookbook不在那里。图书馆的食谱都在
    ~/.berkshelf/cookbooks
    中,但你不必担心这一点。它们会自动拉入并添加到您的路径中

    如果其他队友想使用你的chef repo,只需让他们运行
    berks install
    ,所有必要的依赖项也将安装在他们的机器上

    当您运行诸如
    berks upload
    之类的命令时,Berkshellf将自动为您查找并解析所有必要的烹饪书


    这有意义吗?

    您找到解决此问题的方法了吗?回答你自己的问题没关系。请不要忘记将答案标记为正确!:)我知道这个问题和答案现在已经有将近两年的历史了,但我仍然不清楚如何将Berkshellf与组织回购结合使用。您在回答中使用了一本应用程序食谱作为示例,但我不清楚这如何适用于这个问题(特别是对于Chef Zero)。你需要一本食谱吗?有没有办法创建一个不包含任何烹饪书(直接)本身的组织回购?
    chef-repo
      |  Berksfile
      |_ cookbooks
        |_ my-apache2