Vagrant + Chef 盒子 throw "uninitialized constant Opscode::Mysql"

标签 vagrant chef-infra berkshelf chef-zero

这是相关框的 vagrant up 的输出(vagrant destroy 之后)(vagrant provision 会导致相同的错误) :

==> mongos-zend: ================================================================================
==> mongos-zend: Recipe Compile Error in /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_service_debian.rb
==> mongos-zend: ================================================================================
==> mongos-zend: 
==> mongos-zend: 
==> mongos-zend: NameError
==> mongos-zend: ---------
==> mongos-zend: uninitialized constant Opscode::Mysql
==> mongos-zend: 
==> mongos-zend: 
==> mongos-zend: Cookbook Trace:
==> mongos-zend: ---------------
==> mongos-zend:   /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_service_debian.rb:17:in `<class:Debian>'
==> mongos-zend:   /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_service_debian.rb:9:in `<class:MysqlService>'
==> mongos-zend:   /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_service_debian.rb:8:in `<class:Provider>'
==> mongos-zend:   /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_service_debian.rb:7:in `<class:Chef>'
==> mongos-zend:   /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_service_debian.rb:6:in `<top (required)>'
==> mongos-zend: 
==> mongos-zend: 
==> mongos-zend: Relevant File Content:
==> mongos-zend: ----------------------
==> mongos-zend: /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_service_debian.rb:
==> mongos-zend: 
==> mongos-zend:  10:          use_inline_resources if defined?(use_inline_resources)
==> mongos-zend:  11:  
==> mongos-zend:  12:          def whyrun_supported?
==> mongos-zend:  13:            true
==> mongos-zend:  14:          end
==> mongos-zend:  15:  
==> mongos-zend:  16:          include MysqlCookbook::Helpers::Debian
==> mongos-zend:  17>>         include Opscode::Mysql::Helpers
==> mongos-zend:  18:  
==> mongos-zend:  19:          action :create do
==> mongos-zend:  20:  
==> mongos-zend:  21:            unless sensitive_supported?
==> mongos-zend:  22:              Chef::Log.debug("Sensitive attribute disabled, chef-client version #{Chef::VERSION} is lower than 11.14.0")
==> mongos-zend:  23:            end
==> mongos-zend:  24:  
==> mongos-zend:  25:            package 'debconf-utils' do
==> mongos-zend:  26:              action :install
==> mongos-zend: 
==> mongos-zend: 
==> mongos-zend: 
==> mongos-zend: [2015-01-12T10:50:04-06:00] ERROR: Running exception handlers
==> mongos-zend: [2015-01-12T10:50:04-06:00] ERROR: Exception handlers complete
==> mongos-zend: [2015-01-12T10:50:04-06:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> mongos-zend: [2015-01-12T10:50:04-06:00] ERROR: uninitialized constant Opscode::Mysql
==> mongos-zend: [2015-01-12T10:50:04-06:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.

$ Chef 客户端-v Chef :11.18.0.rc.1

$ Vagrant -v Vagrant 1.6.5

这本 Recipe 是从伯克斯超市来的,这让我 - https://github.com/chef-cookbooks/mysql .

如果有人对添加内容有建议,我可以提供更多信息。我希望有人看到这一点并认识到这个问题,并知道要寻找什么。

Shyamalan 式的扭曲:我的同事正在使用与我相同的 Vagrant/Chef 存储库,并且可以毫无问题地运行 vagrant up。我们有相同版本的 Vagrant 和 Chef,其他所有内容都应该通过 Berksfile/Vagrantfile(位于存储库中)进行管理。

最佳答案

您的代码依赖于 mysql cookbook在一个版本< 6.0 .

请参阅helper library in v5.6.1 ,它位于 Opscode::Mysql::Helpers命名空间,与 helper library in v6.0.0它在哪里MysqlCookbook::Helpers .

我不确定,如果您有自己的顶级 Recipe ,您的运行列表是什么,但您可以在 depends 中定义版本约束部分metadata.rb (参见docs)。

关于Vagrant + Chef 盒子 throw "uninitialized constant Opscode::Mysql",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27910456/

相关文章:

chef-infra - 创建客户端时出现vagrant up错误? Chef-stacktrace:OpenSSL::PKey::RSAError:需要私钥

amazon-web-services - Chef : HOME environment variable (or HOMEDRIVE and HOMEPATH) must be set and point to a directory

vagrant - puppet 在错误的地方寻找 hiera.yaml

linux - 为多台机器配置 Vagrantfile - Vagrant

chef-infra - 如何启用 Ohai 插件生成 ['etc' ] ['passwd' ]?

macos - chef-solo 停止多次询问服务器密码

amazon-web-services - 在使用 Kitchen 和 Chef 进行本地开发时,您如何模拟 OpsWorks 特定的服务/依赖项?

linux - Vagrant 和 virtualbox 同步目录 : permission issues moving from windows host to linux host

ssh - 如何在Putty中通过SSH连接?

ruby - Chef - 从上次运行的状态中跳过资源