【问题标题】:Distributing Cookbooks to Team Members向团队成员分发食谱
【发布时间】:2014-04-23 20:30:35
【问题描述】:

使用test-kitchenBerkshelf,我想捕获和分发我当前的食谱。

告诉队友安装berkshelf后,这些选项似乎可行:

  1. 通过Berksfilecookbook 的操作码存储库检索食谱
  2. 运行berks package 以压缩所有必要的食谱。然后,开发人员将解压缩 tarball,然后他们的 Berksfile 将通过 cookbook X, path: 'cookbooks/X' 检索每本说明书
  3. ???

哪个选项最好,为什么?

【问题讨论】:

    标签: chef-infra berkshelf test-kitchen


    【解决方案1】:

    您为什么要分发这些食谱? Berkshelf/Bundler 等工具的全部意义在于让您不必共享食谱。

    当您使用 Berkshelf 安装食谱时,Berkshelf 将生成一个锁定文件。此锁定文件包含所有说明书及其位置的列表。然后将该锁定文件签入源代码管理。当您的队友克隆/更新存储库时,他们将获得该锁定文件。然后运行 ​​berks install 时,Berkshelf 将遵守锁定文件中的所有约束和版本。

    非常不鼓励使用非标准位置(即路径、github、svn、hg 等)。它们使解决图表几乎不可能,并使您的存储库的可移植性降低。

    另见:

    来源:

    • 核心团队

    【讨论】:

    • 谢谢,赛斯。我也很欣赏“Berkshelf Vision”的演讲。
    【解决方案2】:

    我怀疑最佳选择归结为您打算将食谱分发给谁。

    1. 其他开发人员?
      • 最简单的解决方案是将 Berkfile.lock 与代码一起提交
      • 在某个时间点捕获依赖项
    2. 第三方
      • 创建一个 tarball(使用 Berkshelf)并上传到二进制存储库管理器,例如 Nexus
      • 用户可以下载厨师服务器中使用的食谱的明确副本。如果客户位于公司防火墙后面,则很有用。

    Jamie Windsor 在他的博文中讨论了各种方法:

    【讨论】:

    • 谢谢,马克。所以,假设我这样做:rm -rf Berksfile.lock && 'create & provision box'。如果该运行成功,那么我可以将我的Berksfile.lock 提交到源代码管理以强制开发人员使用特定版本吗?如果有人更新Berksfile 怎么办?这会覆盖Berksfile.lock 吗?谢谢
    猜你喜欢
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多