首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在更新ChefDK之后,我在Test Kitchen中得到错误"undefined local variable or method `credentials_file'“,或者在knife中得到credentials.rb中的错误

在更新ChefDK之后,我在Test Kitchen中得到错误"undefined local variable or method `credentials_file'“,或者在knife中得到credentials.rb中的错误
EN

Stack Overflow用户
提问于 2019-08-28 04:00:34
回答 1查看 267关注 0票数 0

此问题是在从ChefDK 3.2.30升级到4.2.0之后发现的,并且在升级之前一切正常(包括这两个命令)。

“刀节点列表”的完整错误:

代码语言:javascript
复制
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)

来自“厨房聚合”的完整错误:

代码语言:javascript
复制
------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
EN

回答 1

Stack Overflow用户

发布于 2019-08-28 04:00:34

我们发现这种情况下的问题是请求的配置文件无效。

该配置文件可以使用上下文环境变量设置,也可以在用户主.chef目录中名为‘CHEF_PROFILE’的文件中设置(在Linux上为~/.chef,在Windows上为C:\Users\username.chef )。

如果指定的配置文件不是'default‘,则ChefDK将在同一目录中查找名为'credentials’的文件。然后,它将解析该文件并查找与配置文件名称匹配部分。

如果它找不到匹配的配置文件,那么它将生成如问题中所示的错误。

为了解决此用户的问题,我们将“context”文件的值更改为"default“(不带引号),然后一切重新开始工作。

有几种可能的解决方案,哪一种最适合您取决于问题的来源

  • 如果配置文件名称有效,则将相应的部分添加到~/credentials文件
  • 如果CHEF_PROFILE环境变量的值有问题,请将其更改为"default“或有效的名称
  • 如果~/context文件的值有问题,则可以将其删除,或将其中的值更改为有效的配置文件(注意:在删除或更改之前始终对文件进行备份)

通过查看C:/opscode/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-config-15.1.36/lib/chef-config/mixin/credentials.rb中的代码,我找到了上面列出的详细信息,这些细节使我找到了解决方案(这是抛出初始异常的地方)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57681486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档