无法从加载路径加载 'chef-solo' 配置器

Could not load the 'chef-solo' provisioner from the load path

我在我的工作站上新安装了 ChefDK,下载了初学者工具包并修改了 .kitchen.yml 如下:

---
driver:
  name: opennebula
  opennebula_endpoint: http://10.1.1.1/zonea
  oneauth_file: /home/local/.one/one_auth
  template_name: CHEF-TESTVM
  vm_hostname: CHEF-TESTVM-FRONT-END
  public_key_path: /home/local/.ssh/id_rsa.pub
  username: root
  memory: 4096
  require_chef_omnibus: false
  user_variables:
    FILEHOME: http://10.1.1.2/~dev/repo/

provisioner:
  name: chef-solo
  environments_path: /home/local/chef-repo/cookbooks/init/environments/
  role_path: /home/local/chef-repo/cookbooks/init/roles/

platforms:
  - name: ubuntu-12.04

suites:
  - name: default
    provisioner:
      solo_rb:
        environment: dev
    run_list:
      - recipe[wfe]
      - role[common]
    attributes:

厨房配有厨师。 (使用内置 kitchen/gem/bundle 等)

而我 运行 kitchen test 它给出了以下信息:

>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ClientError
>>>>>> Message: Could not load the 'chef-solo' provisioner from the load path. Please ensure that your provisioner is installed as a gem or included in your Gemfile if using Bundler.
>>>>>> ----------------------

which chef-solo returns /opt/chefdk/bin/chef-solo

如果我将 chef-solo 更改为 chef-zero,它会在 kitchen diagnose:

期间忽略相同的错误
exception: "#<Kitchen::ClientError: Could not load the 'chef-zero' provisioner
  from the load path. Please ensure that your provisioner is installed as a gem
  or included in your Gemfile if using Bundler.>"

我已经安装了 kitchen-opennebula gem,但我怀疑这个问题与此无关。

这是怎么回事?

我发现这是一个错字:

chef-solo 在yml中应该是chef_solo

已解决。

我有另一个类似的问题阻止了我一段时间尝试找出原因(data_bag_path vs data_bags_path,它应该有一个 's')