导致此错误的原因错误:对于#<chef :: recipe:0x00000003ca0870>,未定义的方法`mysql_service'?

时间:2017-08-24 02:18:53

标签: centos chef chef-recipe chef-solo

基本上我想创建一个安装MySQL 5.6的食谱,所以我会利用超市中的mysql。

我开始使用chef generate cookbook MYSQL创建一本新的食谱然后添加depends 'mysql', '~> 8.0'并运行成功运行的berks install并安装mysql cookbook。

这是我的default.rb

mysql_service 'default' do
 version '5.7'
 bind_address '0.0.0.0'
 port '3306'
 data_dir '/data'
 initial_root_password 'vagrant'
 action [:create, :start]
end

我运行此命令来运行食谱 - sudo chef-client --local recipes/default.rb,它给出了以下输出

[2017-08-23T18:54:31+00:00] INFO: Started chef-zero at chefzero://localhost:1 with repository at /home/vagrant
One version per cookbook
[2017-08-23T18:54:31+00:00] INFO: Forking chef instance to converge...
Starting Chef Client, version 13.2.20
[2017-08-23T18:54:31+00:00] INFO: *** Chef 13.2.20 ***
[2017-08-23T18:54:31+00:00] INFO: Platform: x86_64-linux
[2017-08-23T18:54:31+00:00] INFO: Chef-client pid: 26421
[2017-08-23T18:54:31+00:00] INFO: The plugin path /etc/chef/ohai/plugins does not exist. Skipping...
[2017-08-23T18:54:33+00:00] INFO: Run List is []
[2017-08-23T18:54:33+00:00] INFO: Run List expands to []
[2017-08-23T18:54:33+00:00] INFO: Starting Chef Run for ardent-admin
[2017-08-23T18:54:33+00:00] INFO: Running start handlers
[2017-08-23T18:54:33+00:00] INFO: Start handlers complete.
resolving cookbooks for run list: []
[2017-08-23T18:54:33+00:00] INFO: Loading cookbooks []
Synchronizing Cookbooks:
Installing Cookbook Gems:
Compiling Cookbooks...

Running handlers:
[2017-08-23T18:54:33+00:00] ERROR: Running exception handlers
Running handlers complete
[2017-08-23T18:54:33+00:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 02 seconds
[2017-08-23T18:54:33+00:00] FATAL: Stacktrace dumped to 
/home/vagrant/.chef/local-mode-cache/cache/chef-stacktrace.out
[2017-08-23T18:54:33+00:00] FATAL: Please provide the contents of the 
stacktrace.out file if you file a bug report
[2017-08-23T18:54:33+00:00] ERROR: undefined method `mysql_service' for #<Chef::Recipe:0x00000004e58a68>
[2017-08-23T18:54:33+00:00] FATAL: 
Chef::Exceptions::ChildConvergeError: Chef run process exited 
unsuccessfully (exit code 1)



[2017-08-24T13:04:11+00:00] WARN: 
*****************************************
[2017-08-24T13:04:11+00:00] WARN: Did not find config file: 
/etc/chef/solo.rb, using command line options.
[2017-08-24T13:04:11+00:00] WARN: 
*****************************************
/opt/chefdk/embedded/lib/ruby/2.4.0/open-uri.rb:37:in `initialize': 
No such file or directory @ rb_sysopen - recipes[MYSQL::default] 
(Errno::ENOENT)
from /opt/chefdk/embedded/lib/ruby/2.4.0/open-uri.rb:37:in `open'
from /opt/chefdk/embedded/lib/ruby/2.4.0/open-uri.rb:37:in `open'
from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/chef-13.2.20/lib/chef/application/client.rb:532:in `block in fetch_recipe_tarball'
from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/chef-13.2.20/lib/chef/application/client.rb:531:in `open'
from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/chef-13.2.20/lib/chef/application/client.rb:531:in `fetch_recipe_tarball'
from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/chef-13.2.20/lib/chef/application/client.rb:346:in `reconfigure'
from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/chef-13.2.20/lib/chef/application.rb:57:in `run'
from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/chef-13.2.20/lib/chef/application/solo.rb:225:in `run'
from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/chef-13.2.20/bin/chef-solo:25:in `<top (required)>'
from /usr/bin/chef-solo:263:in `load'
from /usr/bin/chef-solo:263:in `<main>'

1 个答案:

答案 0 :(得分:0)

运行像这样的单个配方根本不处理依赖关系。除了第一个Chef教程之外,通常不建议使用它。你想要chef-solo -r 'recipe[mycookbook::default]

之类的东西