伯克希尔支持多本食谱吗?如何



我在Chef repo中创建了两个食谱,我想尝试使用Berkshelf来管理它们。

一本食谱依赖于另一本。两人都不在厨师超市。我不想仅仅为了解决依赖关系而添加它们。

在berks上安装这个东西抱怨另一本食谱不见了。

这本烹饪书只能上传到我的厨师服务器上。它不在Chef超市,也不在~/.berkshelf/烹饪书/

这可能吗?还是伯克自己需要一本食谱中的所有食谱?两本不在Chef超市的食谱之间不可能存在依赖关系?

Berkshelf似乎没有处理这种多本相互依赖的食谱的用例。在~/.berkshelve/cookbooks.中也没有获取烹饪书的命令

Berkshelf确实支持多本烹饪书。我在同一家伯克希尔拥有管理30多本烹饪书的经验。Berks可以参考来自本地路径、git路径、github来源的食谱和来自Chef超级市场的社区食谱。

更新

让我们以查询中提到的场景为例。,请执行以下步骤

  • 您需要用您的烹饪书和其他东西创建一个项目存储库
  • Project repo只不过是一个目录,其中包含角色、数据包、食谱和环境的其他目录
  • 将您的烹饪书放在cookbooks目录中
  • 在回购的根目录中创建一个Berksfile
  • Berksfile使用berkshelf。使用gem install berkshelf安装最新的berkshelf版本(我更喜欢使用捆绑安装)

Berksfile的示例内容

source "https://supermarket.chef.io"
# Mention community cookbooks used, if any
cookbook 'community_cookbook_name'
# Mention cookbook names from your repo
%w(my_cookbook_name_1 my_cookbook_name_2).each do | cookbook_name |
cookbook cookbook_name, path: 'cookbooks/' + cookbook_name
end
  • 社区食谱依赖项将使用第1行中的源url进行解析
  • 现在,基本的项目回购设置已经完成。您已准备好运行berks install

  • 清单项目berks list

请尝试以上步骤,并让我知道它是否解决了您的目的。

  • 如果您想上传内容,请按照以下步骤操作
  • 在项目存储库中创建一个目录".chef">
  • 将您的厨师服务器刀具/pem文件复制到.Chef中
  • 从项目repo内部运行下面提到的命令。

    berks上传

    您的烹饪书将使用命令上传到厨师服务器。

  • 您可以使用knife upload data_bags和knife upload roles从repo上传您的数据库和角色。

最新更新