【问题标题】:How to manage redundancy in Chef-repo and berkshelf cookbooks如何管理 Chef-repo 和 berkshelf 食谱中的冗余
【发布时间】:2015-06-28 03:29:47
【问题描述】:

我正在使用 Chef 进行自动化。我有一本 chef-repo 食谱,其中包含自定义食谱以及来自 opscode 网站的食谱。

由于很少有食谱依赖于其他食谱,因此我使用 berks 实用程序安装了这些依赖项。

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

【问题讨论】:

    标签: chef-infra redundancy cookbook berkshelf


    【解决方案1】:

    这里是详细答案,

    您可以在同一个 berksfile 中提及您的包装说明书及其依赖项。 “Beksfile”中的Cookbook源码,可以来自“Chef Supermarket”,GIT源码,系统本地路径。

    考虑食谱“mysql_wrapper”是您开发的食谱,它使用“mysql”社区食谱。还要考虑包装器位于系统本地路径中。

    这是上述场景的示例 berksfile 内容。

    source "https://supermarket.chef.io"
    
    cookbook 'mysql'
    cookbook 'mysql_wrapper', path: '/system/local/path/to/wrapper-cookbooks/mysql_wrapper'
    

    它是如何工作的?

    当您运行“berks install”或“berks upload”时,Berkshelf 会解析 berksfile 中提到的说明书。

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

    设置项目以管理说明书、角色和数据包

    • 使用您的食谱和其他东西创建一个项目存储库。
    • 项目 repo 只不过是一个目录,其中包含 1. Roles、2. Databags、3. Cookbooks 和 4. Environments 的其他目录。根据您的要求创建存储库。
    • 将您的说明书放在说明书目录中。
    • 创建一个目录作为“角色”。将角色添加为“.json”文件。
    • 在 data_bag/data_bag_item 的情况下,创建一个目录作为 data_bags。为每个 data_bag 创建一个目录并将项目添加为“.json”文件。
    • 在 repo 中创建 bersfile

    管理 Chef 服务器

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

    • 在项目仓库中创建一个目录“.chef”
    • 将您的 Chef 服务器刀/pem 文件复制到 .chef 中
    • 从项目存储库中运行命令“berks upload”。您的食谱将上传到 Chef 服务器。
    • 运行knife upload data_bags 和knife upload roles,从repo 上传你的数据包和角色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 2015-10-24
      • 2014-11-06
      • 1970-01-01
      相关资源
      最近更新 更多