厨师验证错误无效!':预期进程以 [0] 退出,但收到 '1'

chef verify error invalid!': Expected process to exit with [0], but received '1'

在运行厨师验证

时出现错误
Running verification for component 'berkshelf'
Running verification for component 'test-kitchen'
Running verification for component 'tk-policyfile-provisioner'
Running verification for component 'chef-client'
Running verification for component 'chef-dk'
Running verification for component 'chef-provisioning'
Running verification for component 'chefspec'
Running verification for component 'generated-cookbooks-pass-chefspec'
Running verification for component 'rubocop'
Running verification for component 'fauxhai'
Running verification for component 'knife-spork'
Running verification for component 'kitchen-vagrant'
Running verification for component 'package installation'
Running verification for component 'openssl'
Running verification for component 'inspec'
................./opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout.rb:289:in `invalid!': Expected process to exit with [0], but received '1' (Mixlib::ShellOut::ShellCommandFailed)
---- Begin output of /usr/local/bin/ohai -v ----
STDOUT: 
STDERR: /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:319:in `to_specs': Could not find 'chef-config' (= 12.8.0) - did find: [chef-config-12.7.2] (Gem::LoadError)
Checked in 'GEM_PATH=/Users/saddam/.chefdk/gem/ruby/2.1.0:/opt/chefdk/embedded/lib/ruby/gems/2.1.0', execute `gem env` for more information
from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:328:in `to_spec'
from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:65:in `gem'
from /usr/local/bin/ohai:4:in `<main>'
---- End output of /usr/local/bin/ohai -v ----
Ran /usr/local/bin/ohai -v returned 1
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout.rb:276:in `error!'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/component_test.rb:99:in `block in sh!'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/component_test.rb:99:in `tap'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/component_test.rb:99:in `sh!'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/command/verify.rb:358:in `block (2 levels) in <class:Verify>'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/component_test.rb:78:in `instance_eval'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/component_test.rb:78:in `run_smoke_test'
from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/command/verify.rb:475:in `block (2 levels) in invoke_tests'

我想再补充一件事我已经ruby安装了最新版本的 2.2.3

我遇到了类似的问题:

[root@invalid!': 预期进程以 [0] 退出,但收到 '1' (Mixlib::ShellOut::ShellCommandFailed) ---- 开始输出 /usr/bin/ohai -v ---- 标准输出: STDERR:/opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:319:into_specs':找不到 'chef-config' (= 12.8.0) - 找到了:[chef-config- 12.7.2] (Gem::LoadError) 签入 'GEM_PATH=/root/.chefdk/gem/ruby/2.1.0:/opt/chefdk/embedded/lib/ruby/gems/2.1.0',执行 gem env 了解更多信息 来自 /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:328:in to_spec' from /opt/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:65:ingem' 来自 /usr/bin/ohai:4:in <main>' ---- End output of /usr/bin/ohai -v ---- Ran /usr/bin/ohai -v returned 1 from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/mixlib-shellout-2.2.6/lib/mixlib/shellout.rb:276:inerror!' 来自 /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/component_test.rb:99:in block in sh!' from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/component_test.rb:99:intap' 来自 /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/component_test.rb:99:in sh!' from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/command/verify.rb:358:inblock (2 levels) in ' 来自 /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/component_test.rb:78:in instance_eval' from /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/component_test.rb:78:inrun_smoke_test' 来自 /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/chef-dk-0.11.2/lib/chef-dk/command/verify.rb:475:在 invoke_tests'

中的`block (2 levels)

似乎当前的 Omnibus 安装程序捆绑了(或期望)错误版本的 chef-config。

更复杂的是 chef-config-12.8.0 还没有 rubygems.org

这是我解决它的方法

git clone https://github.com/chef/chef.git
cd chef/chef-config
/opt/chefdk/embedded/bin/gem build chef-config.gemspec
/opt/chefdk/embedded/bin/gem install chef-config-12.8.0.gem

您可以更新到最新:

curl https://omnitruck.chef.io/install.sh | sudo bash -s -- -c current -P chefdk

https://github.com/chef/chef-dk

或编辑 ohai 脚本:sudo vi /usr/bin/ohai12.8.0 替换为 12.7.2

https://github.com/chef/chef-dk/issues/718