我在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上传您的数据库和角色。