【问题标题】:Using berks for local development only?仅将berks用于本地开发?
【发布时间】:2023-08-01 06:21:02
【问题描述】:

我不想在生产中使用 berks,因为我不喜欢节点到网络上来提取食谱的想法(我只希望它们以正常方式从 Chef 服务器中提取它们)。但我喜欢使用 Berks 进行本地开发,因为它为我解决了厨房的依赖关系。

我正在考虑将 berksfile 和 berksfile.lock 添加到 gitignore,但我想我想问是否可以使用 berks 完成此操作而不将其从生产中删除。

【问题讨论】:

    标签: configuration chef-infra cookbook recipe berkshelf


    【解决方案1】:

    “节点”永远不会去互联网寻找食谱,它们总是来自厨师服务器,所以.... 问题是:你打算如何将食谱交付给厨师服务器管理您的生产节点?

    大多数人似乎做的是提交 Berkshelf 锁定文件,然后对目标厨师服务器运行“berks apply”。这很可能符合您的需求。

    就我个人而言,我喜欢更好地将开发与生产/非生产系统分开。我使用 Berkshelf 中的“vendor”命令创建了一个发行版 tarball,其中包含我在开发中测试过的所有说明书,并将这个二进制文件存储在一个修订控制系统中,如Nexus。我怀疑很多人会认为这太过分了,但它使我能够提供离线(无需互联网连接)和可追踪的配置交付。

    【讨论】:

    • 哦,我想我误解了 berkshelf 的工作原理。我认为节点查看了在默认情况下是超市的 berksfile 中定义的“源”,以查看从哪里获得食谱。
    • 不,berks 仅用于将食谱上传到厨师服务器,或组装可以传递给 chef-solo 的文件夹。
    • @red888 是的,Chef 客户端在运行时不使用 Berkshelf。 Berkshelf 工具是后来发明的,用于帮助将正确的食谱上传到厨师服务器(或与厨师独奏一起使用)。在它存在之前,手动确定哪个版本的食谱依赖于另一个版本是非常痛苦的。
    最近更新 更多