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

How do I use roles in test kitchen?

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

我对我的厨师库 (C:\.chef\roles) 进行了 knife download roles

我也做了 knife download cookbooksc:\.chef\cookbooks

这是我想要测试的食谱的 .kitchen.yml,我计划 运行 具有特定角色 (C:\.chef\cookbooks\mybook\.kitchen.yml):

---
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:

当我 运行 厨房收敛时,我收到 "No such cookbook:" 处于该角色的食谱错误。

如何让测试厨房找到那些食谱?我尝试在我的 .kitchen.yml 中添加一条 - cookbooks 行,其中包含我工作站上所有必要的食谱的路径,但这没有用 - 我还认为我应该用 berkshelf 来代替?

您需要告诉 Test Kitchen 从哪里获取您的食谱。最简单的方法是使用 Berkshelf(或者可能是 Policyfile)。在 Kitchen 配置旁边放置一个 Berksfile 并显示从何处获取所有食谱(超市、本地路径、厨师服务器等)。