此问题是在从ChefDK 3.2.30升级到4.2.0之后发现的,并且在升级之前一切正常(包括这两个命令)。
“刀节点列表”中的完整错误:
C:/opscode/chefdk/embedded/lib/ruby/gems/2.6.0/gems/rbvmomi-1.13.0/lib/rbvmomi/vim.rb:8: warning: Win32API is deprecated after Ruby 1.9.1; use fiddle directly instead
Traceback (most recent call last):
8: from C:/opscode/chefdk/bin/knife:359:in <main>' 7: from C:/opscode/chefdk/bin/knife:359:inload'
6: from C:/opscode/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36-universal-mingw32/bin/knife:24:in <top (required)>' 5: from C:/opscode/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36-universal-mingw32/lib/chef/application/knife.rb:162:inrun'
4: from C:/opscode/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36-universal-mingw32/lib/chef/knife.rb:221:in run' 3: from C:/opscode/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36-universal-mingw32/lib/chef/knife.rb:440:inconfigure_chef'
2: from C:/opscode/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.1.36-universal-mingw32/lib/chef/knife.rb:185:in load_config' 1: from C:/opscode/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-config-15.1.36/lib/chef-config/workstation_config_loader.rb:72:inload'
C:/opscode/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-config-15.1.36/lib/chef-config/mixin/credentials.rb:92:in load_credentials': undefined local variable or methodcredentials_file' for #<ChefConfig::WorkstationConfigLoader:0x000000000c311e68> (NameError)
“厨房融合”的全部错误:
------Exception-------
Class: Kitchen::ClientError
Message: Could not load the 'chef_zero' provisioner. Error: undefined local variable or method `credentials_file' for #<ChefConfig::WorkstationConfigLoader:0x0000000006f176a0>
Did you mean? credentials_profile
credentials_found
@credentials_found
----------------------
Please see .kitchen/logs/kitchen.log for more details
Also try running kitchen diagnose --all for configuration
答案 0 :(得分:0)
我们发现这种情况下的问题是所请求的个人资料无效。
可以使用CHEF_PROFILE环境变量设置概要文件,也可以在用户主目录.chef目录(在Linux中为〜/ .chef,在Windows中为C:\ Users \ username.chef)的名为“ context”的文件中进行设置。
如果指定的配置文件不是“ default”,则ChefDK将在同一目录中查找名为“ credentials”的文件。然后它将解析该文件并查找与配置文件名称匹配的部分。
如果找不到匹配的配置文件,则会生成类似问题中的错误的信息。
为解决此用户的问题,我们将“上下文”文件的值更改为“默认”(不带引号),然后一切又开始正常工作。
有几种可能的解决方案,哪种最适合您取决于问题的出处
我通过浏览C:/opscode/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-config-15.1.36/中的代码,发现了上面列出的详细信息,这使我得以解决。 lib / chef-config / mixin / credentials.rb(这是引发初始异常的地方)