用户食谱在 Test Kitchen 中失败但在 bootstrap 中工作

Users cookbook failing in Test Kitchen but working in bootstrap

我有一个将用户添加到 Centos 7.3 机器的简单方法:

users_manage 'sales' do
  group_id 5000
  action [:create]
  data_bag 'sales_users'
end

users_manage 'mechanics' do
  group_id 6000
  action [:create]
  data_bag 'shop_users'
end

数据包的工作方式与使用标准刀 boostrap 客户端收敛配方并添加用户时一样...但是。测试厨房失败并出现以下错误:

       Error executing action `create` on resource 'users_manage[sales]'


       NoMethodError
       -------------
       undefined method `supports' for Chef::Resource::User::LinuxUser

查看 Test Kitchen 的虚拟机,我可以在 /tmp/kitchen/data_bags 目录中找到数据包。这是在 Test Kitchen 中工作的,我不确定是什么阻止了它工作,因为我不确定该错误意味着什么...

您正在 Test Kitchen 中安装 Chef 13,但在生产环境中安装了 12。通过将此添加到您的 .kitchen.yml 来解决此问题(如果现有供应商部分已经存在,请更新):

provisioner:
  name: whatever_you_have
  require_chef_omnibus: 12

我认为 users 烹饪书最近也针对 Chef 13 进行了更新,因此如果您确实想继续对其进行测试以进行升级,请检查是否有问题阻止了升级。