【问题标题】:How do I use roles in test kitchen?如何在测试厨房中使用角色?
【发布时间】:2016-12-03 11:24:46
【问题描述】:

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

我对我的厨师回购 (C:\.chef\roles) 做了一个knife download roles

我还给c:\.chef\cookbooks做了一个knife download 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:

当我运行厨房融合时,我收到“没有这样的食谱:”对于担任该角色的食谱的错误。

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

【问题讨论】:

标签: chef-infra chef-recipe test-kitchen chef-zero


【解决方案1】:

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

【讨论】:

  • 我可以将我的食谱路径放在 berksfile 中吗?我只看到在 berksfile 中指定单个食谱的示例
  • 使用循环:Dir[File.expand_path('../cookbooks/*', __FILE__)].each {|path| cookbook File.basename(path), path: path } 或类似的,具体取决于您的布局。
  • 嗯,我把它放在了我在食谱中的 Berkshelf 文件中,但我仍然没有得到这样的食谱
  • 运行berks install 并查看生成的锁文件。
  • 在运行 berks install 之后,它看起来没有用任何更多的食谱更新锁定文件。我所有的食谱都在同一个地方(这本食谱中的../cookbooks 就是它们所在的地方)。我是否也需要 metadata.rb 中的代码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多