【问题标题】:Berkfiles and metadataBerk 文件和元数据
【发布时间】:2020-03-14 11:13:42
【问题描述】:

对berks 文件中“元数据”关键字的理解。 参考文档:https://docs.chef.io/berkshelf.html

metadata 关键字使 Berkshelf 处理本地菜谱元数据。这确保了食谱的依赖关系 由 Berkshelf 解决。使用 metadata 关键字需要 Berksfile 被放置在说明书的根目录中,在 metadata.rb 旁边。

无法理解 Berkshelf 文件应该放在说明书的根目录中的含义。我是否应该创建一个名为 Berkshelf 的文件,并将其放置在将“metadata.rb”添加到食谱(所有食谱)并通过工件提供的同一位置?我在安装说明书的 VM 中创建了一个 Berkshelf 文件,添加了元数据关键字。但出现错误“无法打开或读取:'/root/.chef/metadata.rb'”

假设必须将 Berkfiles 添加到每个食谱中,它会包含“源”元素吗?因为它将被添加到代表食谱位置的 VM berksfile 中。我不想在工件存储库中限制源 => Berksfile 将拥有的唯一文本是在我的情况下添加到每个食谱时的“元数据”。

目标:是解决所引用的每个说明书的依赖关系。 注意:即使没有“元数据”,我也观察到 berks 供应商命令试图下载所有引用的食谱。不确定在安装说明书的 VM 中创建的 Berksfile 中没有任何元数据关键字是怎么可能的

【问题讨论】:

    标签: chef-infra berkshelf


    【解决方案1】:

    这意味着您应该在您的说明书目录/存储库中的 metadata.rb 旁边有一个名为“Berksfile”的文件。

    "metadata" 关键字意味着它会将 metadata.rb 中引用的依赖项添加到其列表中,让您不再重复自己。大多数情况下,您的食谱的 Berksfiles 将只包含:

    source 'https://supermarket.chef.io' 
    metadata
    

    这是一个带有此类 Berkfile 的简单食谱示例:https://gitlab.com/chef-platform/test-cookbook

    如果它包含更多条目,可能是因为您有一个“测试”依赖项,即未在食谱元数据中引用。

    这里有一本带有测试依赖项的食谱:https://gitlab.com/chef-platform/confluent-platform

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      • 2016-03-20
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      相关资源
      最近更新 更多