Chef infra 如何在测试厨房中使用角色?

Chef infra 如何在测试厨房中使用角色?,chef-infra,chef-recipe,test-kitchen,chef-zero,Chef Infra,Chef Recipe,Test Kitchen,Chef Zero,我不知道如何在测试厨房的运行列表中运行角色 我将角色下载到我的厨师repo(C:\.chef\roles) 我还做了一个刀下载烹饪书到c:\.chef\cookbooks 下面是我想要测试的一本烹饪书的.kitchen.yml,我计划用一个特定角色运行它(C:\.chef\cookbooks\mybook\.kitchen.yml): 当我经营一家厨房时,我得到了“没有这样的食谱:”这个角色的食谱错误 我如何让测试厨房找到那些食谱?我尝试在我的.kitchen.yml中添加一个-cookbook

我不知道如何在测试厨房的运行列表中运行角色

我将角色下载到我的厨师repo(
C:\.chef\roles

我还做了一个
刀下载烹饪书
c:\.chef\cookbooks

下面是我想要测试的一本烹饪书的.kitchen.yml,我计划用一个特定角色运行它(
C:\.chef\cookbooks\mybook\.kitchen.yml
):

当我经营一家厨房时,我得到了“没有这样的食谱:”这个角色的食谱错误


我如何让测试厨房找到那些食谱?我尝试在我的.kitchen.yml中添加一个
-cookbooks
行,其中包含我工作站上所有必需的烹饪书的路径,但这不起作用-我还认为我应该使用Berkself来执行此操作?

您需要告诉Test kitchen在哪里可以获得您的烹饪书。实现这一点的最简单方法是Berkshell(或者一个策略文件)。在厨房配置旁边放置一个
Berksfile
,并显示所有烹饪书(超市、本地路径、厨师服务器等)的位置。

您使用的是BerksShelf吗?这有帮助吗?我可以把我的食谱路径放在berksfile中吗?我只看到在berksfileUse循环中指定单个cookbooks的示例:
Dir[File.expand_path('../cookbooks/*',_uufile_u)]。每个{path | cookbook File.basename(path),path:path}
或类似内容,具体取决于您的布局。嗯,我把它放在烹饪书中的Berkshelf文件中,仍然没有这样的烹饪书运行
berks安装
并查看生成的锁文件。运行berks安装后,它看起来好像没有用更多的烹饪书更新锁文件。我所有的食谱都放在同一个地方(../这本食谱中的食谱就是它们所在的地方)。我也需要metadata.rb中的代码吗?
---
driver:
  name: hyperv
  parent_vhd_folder: c:\HyperV\VHDs\
  parent_vhd_name: 2012R2_Fresh_Gen1.vhdx
  vm_switch: NAT
  memory_startup_bytes: 2GB

provisioner:
  name: chef_zero
  roles_path: c:\.chef\roles

transport:
  password: pass123

platforms:
  - name: windows-2012r2

suites:
  - name: default
    run_list:
      - role[myrole]
    attributes: