迁移到伯克谢尔夫



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

设置

我们使用git submodules来维护cookbooks目录中的vendor cookbooks,我们的custom cookbooks site-cookbooks

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

当我执行Berks install时,供应商说明书将作为cookbook_name - version安装在说明书目录中。

问题

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

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

然而,老实说,我认为我正朝着错误的方向前进,情况不应该如此。

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

最新更新