Chef infra 如何管理Chef repo和Berkshellf cookbooks中的冗余

Chef infra 如何管理Chef repo和Berkshellf cookbooks中的冗余,chef-infra,redundancy,cookbook,berkshelf,Chef Infra,Redundancy,Cookbook,Berkshelf,我正在使用厨师自动化。我有一本chef repo食谱,里面有定制的食谱以及opscode网站上的食谱 由于很少有烹饪书依赖于其他烹饪书,所以我使用berks实用程序安装了这些依赖项 现在我的问题是如何管理食谱及其冗余内容。以下是详细答案 您可以在同一个berksfile中提到包装器cookbooks及其依赖项。“Beksfile”中的Cookbook源代码可以来自“Chef Supermarket”、GIT源代码和系统本地路径 假设cookbook“mysql_wrapper”是您开发的cook

我正在使用厨师自动化。我有一本chef repo食谱,里面有定制的食谱以及opscode网站上的食谱

由于很少有烹饪书依赖于其他烹饪书,所以我使用berks实用程序安装了这些依赖项


现在我的问题是如何管理食谱及其冗余内容。

以下是详细答案

您可以在同一个berksfile中提到包装器cookbooks及其依赖项。“Beksfile”中的Cookbook源代码可以来自“Chef Supermarket”、GIT源代码和系统本地路径

假设cookbook“mysql_wrapper”是您开发的cookbook,它使用“mysql”社区cookbook。还考虑包装器位于系统本地路径。< /P> 下面是上述场景的berksfile内容示例

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

cookbook 'mysql'
cookbook 'mysql_wrapper', path: '/system/local/path/to/wrapper-cookbooks/mysql_wrapper'
它是如何工作的?

当您运行“berks安装”或“berks上传”时,BerksShelf解析berksfile中提到的烹饪书

依赖社区食谱将从“超市”下载,因为我们在第一行引用了它。而包装器cookbook将由本地路径引用

建立一个管理食谱、角色和数据包的项目

  • 用你的食谱和其他东西创建一个项目存储库
  • Project repo不过是一个目录,其中包含1的其他目录。角色,2。数据包,3。食谱和4。环境。根据您的需求创建存储库
  • 把你的食谱放在食谱目录里
  • 创建一个目录作为“角色”。将角色添加为“.json”文件
  • 对于数据包/数据包项目,创建一个目录作为数据包。为每个数据包创建一个目录,并将项目添加为“.json”文件
  • 在repo中创建文件
管理厨师长服务器

如果您想上传内容,请按照以下步骤操作:

  • 在项目回购中创建目录“.chef”
  • 将Chef服务器刀/pem文件复制到.Chef中
  • 从项目repo内部运行命令“berks upload”。您的食谱将上载到厨师服务器
  • 运行刀上传数据包和刀上传角色,从回购中上传数据包和角色