基本上我想创建一个安装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>'
答案 0 :(得分:0)
运行像这样的单个配方根本不处理依赖关系。除了第一个Chef教程之外,通常不建议使用它。你想要chef-solo -r 'recipe[mycookbook::default]
。