berkshelf 是否支持多本食谱?如何?

Does berkshelf support multiple cookbooks? How?

我在 Chef 存储库中创建了两本食谱,我想尝试使用 Berkshelf 对其进行管理。

一本食谱依赖于另一本食谱。两者都不在 Chef Supermarket。我不想仅仅为了解决依赖关系而将它们添加到那里。

关于 berks 安装这个东西抱怨另一本食谱丢失。

这本食谱仅在上传到我的 Chef 服务器时存在。它不在 Chef 超市,也不在 ~/.berkshelf/cookbooks/

这可能吗?或者 Berkshelf 是否需要一本食谱中的所有食谱?不在 Chef 超市的两本食谱之间不可能有依赖关系?

Berkshelf 似乎没有处理这种多本相互依赖的食谱的用例。在 ~/.berkshelf/cookbooks.

中也没有获取食谱的命令

Berkshelf 确实支持多本食谱。 我有在同一个 berkshelf 中管理 30 多本食谱的经验。 Berks 可以从本地路径、git 路径、github 来源和来自 Chef super market 的社区食谱参考食谱。

更新

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

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

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
  • 社区食谱依赖项将在第一行使用源 url 得到解决。
  • 现在基本的项目回购设置已经完成。您准备好 [=7​​8=] berks install

  • 列表项berks list

请尝试以上步骤,如果能解决您的问题,请告诉我。

  • 如果您想上传内容,请按照以下步骤操作,
  • 在项目存储库中创建目录“.chef”
  • 将您的 Chef 服务器 knife/pem 文件复制到 .chef
  • 运行 下面从项目仓库中提到的命令。

    伯克斯上传

    您的食谱将使用命令上传到 Chef 服务器。

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