我目前正在将我们组织的kitchen
迁移到Berkshelf
。
SETUP
我们使用git submodules
维护vendor cookbooks
目录中的cookbooks
。我们的custom cookbooks
位于site-cookbooks
。
我摆脱了submodules
目录中的所有cookbooks
,并使用我们的自定义食谱创建了Berksfile
。我已将ENV['BERKSHELF_PATH']
中的Berksfile
设置为cookbooks
目录,以便在一个位置包含供应商食谱,并将烹饪书目录添加到.gitignore
。
当我执行Berks install
时,供应商食谱在cookbook目录中安装为cookbook_name
- version
。
问题
当我运行chef-solo
来运行自定义食谱时,厨师运行失败,因为有template
资源或cookbook_file
资源的供应商食谱中的食谱失败,因为厨师无法找到模板或文件位于食谱的files
目录或templates
目录中,即使它们存在。
将供应商食谱从apt-2.7.0
安装的berkshelf
重命名为apt
,而不是version number
,并将供应商食谱添加到Berksfile,例如{{1}解决问题。
但老实说,我认为我的方向是错误的,情况应该不是这样。
答案 0 :(得分:1)
您不想设置BERKSHELF_PATH
,这是Berkshelf的内部跟踪目录,几乎不会被触及。在配置过程中,Kitchen将自动为您运行berks vendor
。