迁移到伯克谢尔夫

Migration to Berkshelf

我目前正在将我们组织的 kitchen 迁移到 Berkshelf

设置

我们使用 git submodules 来维护 cookbooks 目录中的 vendor cookbooks。我们的 custom cookbookssite-cookbooks.

我删除了 cookbooks 目录中的所有 submodules,并使用我们的自定义食谱创建了一个 Berksfile。我已将 Berksfile 中的 ENV['BERKSHELF_PATH'] 设置为 cookbooks 目录,以便在一个地方包含供应商食谱,并将食谱目录添加到 .gitignore.

当我执行 Berks install 时,供应商食谱安装在食谱目录中,如 cookbook_name-version.

问题

当我 运行 chef-solo 到 运行 自定义食谱时,厨师 运行 失败,因为供应商食谱中的食谱具有 template 资源或cookbook_file 资源失败,因为厨师无法在食谱的 files 目录或 templates 目录中找到模板或文件,即使它们存在。

apt-2.7.0berkshelf 安装的供应商说明书重命名为 apt 而没有 version number 并将供应商说明书添加到 Berksfile,例如 cookbook 'apt', path: './cookbooks/apt' 解决问题。

但是老实说,我认为我的方向是错误的,不应该是这样的。

您不想设置 BERKSHELF_PATH,那是 Berkshelf 的内部跟踪目录,几乎不应该被触及。作为配置过程的一部分,Kitchen 将自动为您处理 运行 berks vendor