Назад | Перейти на главную страницу

What is causing this error ERROR: undefined method `mysql_service' for #<chef::recipe:0x00000003ca0870>?</chef::recipe:0x00000003ca0870>

В основном я хочу создать кулинарную книгу, которая устанавливает MySQL 5.7, поэтому я бы использовал mysql из супермаркета.

Я начал с создания новой кулинарной книги, используя chef generate cookbook MYSQL Затем добавил depends 'mysql', '~> 8.0' и запустить berks install который успешно запускается и устанавливает поваренную книгу mysql.

Вот мой 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)

Я на 99% уверен, что вы разместили это где-то еще, и я тоже ответил на него, но на всякий случай: выполнение одного такого рецепта не обрабатывает зависимости. Вам нужно использовать обычный режим chef-solo (или локальный режим chef-client, но, вероятно, соло). К сожалению, вы не даете здесь достаточно информации, чтобы понять, как это будет выглядеть. Индивидуальные рабочие процессы всегда более сложны, потому что вы отклоняетесь от обычных проторенных путей. Мы рекомендуем вам максимально придерживаться стандартных рабочих процессов, пока вы не освоите Chef достаточно, чтобы составить собственный маршрут.