迁移到伯克谢尔夫
Migration to Berkshelf
我目前正在将我们组织的 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
资源失败,因为厨师无法在食谱的 files
目录或 templates
目录中找到模板或文件,即使它们存在。
将 apt-2.7.0
由 berkshelf
安装的供应商说明书重命名为 apt
而没有 version number
并将供应商说明书添加到 Berksfile,例如 cookbook 'apt', path: './cookbooks/apt'
解决问题。
但是老实说,我认为我的方向是错误的,不应该是这样的。
您不想设置 BERKSHELF_PATH
,那是 Berkshelf 的内部跟踪目录,几乎不应该被触及。作为配置过程的一部分,Kitchen 将自动为您处理 运行 berks vendor
。
我目前正在将我们组织的 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
资源失败,因为厨师无法在食谱的 files
目录或 templates
目录中找到模板或文件,即使它们存在。
将 apt-2.7.0
由 berkshelf
安装的供应商说明书重命名为 apt
而没有 version number
并将供应商说明书添加到 Berksfile,例如 cookbook 'apt', path: './cookbooks/apt'
解决问题。
但是老实说,我认为我的方向是错误的,不应该是这样的。
您不想设置 BERKSHELF_PATH
,那是 Berkshelf 的内部跟踪目录,几乎不应该被触及。作为配置过程的一部分,Kitchen 将自动为您处理 运行 berks vendor
。