Ошибка клиента Chef при обработке поваренной книги MySQL

0

Я пытаюсь предоставить новый сервер, используя chef-client. Этот процесс поражает NameError, вызванный неинициализированной константой "MysqlCookbook: Helpers".

Это результат, который я получаю:

0.0.0.0 Compiling Cookbooks...
0.0.0.0
0.0.0.0 ================================================================================
0.0.0.0 Recipe Compile Error in /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_client.rb
0.0.0.0 ================================================================================
0.0.0.0
0.0.0.0 NameError
0.0.0.0 ---------
0.0.0.0 uninitialized constant MysqlCookbook::Helpers
0.0.0.0
0.0.0.0 Cookbook Trace:
0.0.0.0 ---------------
0.0.0.0   /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_client.rb:7:in '<class:MysqlClient>'
0.0.0.0   /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_client.rb:6:in '<class:Provider>'
0.0.0.0   /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_client.rb:5:in '<class:Chef>'
0.0.0.0   /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_client.rb:4:in '<top (required)>'
0.0.0.0
0.0.0.0 Relevant File Content:
0.0.0.0 ----------------------
0.0.0.0 /var/chef/cache/cookbooks/mysql/libraries/provider_mysql_client.rb:
0.0.0.0
0.0.0.0   1:  require 'chef/provider/lwrp_base'
0.0.0.0   2:  require_relative 'helpers'
0.0.0.0   3:
0.0.0.0   4:  class Chef
0.0.0.0   5:    class Provider
0.0.0.0   6:      class MysqlClient < Chef::Provider::LWRPBase
0.0.0.0   7>>       include MysqlCookbook::Helpers
0.0.0.0   8:        provides :mysql_client if defined?(provides)
0.0.0.0   9:
0.0.0.0  10:        use_inline_resources if defined?(use_inline_resources)
0.0.0.0  11:
0.0.0.0  12:        def whyrun_supported?
0.0.0.0  13:          true
0.0.0.0  14:        end
0.0.0.0  15:
0.0.0.0  16:        action :create do
0.0.0.0
0.0.0.0 System Info:
0.0.0.0 ------------
0.0.0.0 chef_version=12.21.31
0.0.0.0 platform=ubuntu
0.0.0.0 platform_version=16.04
0.0.0.0 ruby=ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-linux]
0.0.0.0 program_name=chef-client worker: ppid=31986;start=12:48:17;
0.0.0.0 executable=/opt/chef/bin/chef-client
0.0.0.0
0.0.0.0
0.0.0.0 Running handlers:
0.0.0.0 [2018-02-07T12:48:23+00:00] ERROR: Running exception handlers
0.0.0.0 Running handlers complete
0.0.0.0 [2018-02-07T12:48:23+00:00] ERROR: Exception handlers complete
0.0.0.0 Chef Client failed. 0 resources updated in 05 seconds
0.0.0.0 [2018-02-07T12:48:23+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
0.0.0.0 [2018-02-07T12:48:23+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
0.0.0.0 [2018-02-07T12:48:23+00:00] ERROR: uninitialized constant MysqlCookbook::Helpers
0.0.0.0 [2018-02-07T12:48:23+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

Я просмотрел файл, где он, кажется, падает (provider_mysql_client.rb), который начинается с следующего кода:

require 'chef/provider/lwrp_base'
require_relative 'helpers'

class Chef
  class Provider
    class MysqlClient < Chef::Provider::LWRPBase
      include MysqlCookbook::Helpers
      provides :mysql_client if defined?(provides)

Я не Ruby dev (мой фон в PHP и JavaScript), но мне кажется, что он включает в себя файл helpers.rb который находится в том же каталоге, что и указанный выше файл.

Содержимое которого начинается следующим образом:

module MysqlCookbook
  module HelpersBase
    require 'shellwords'

    def el6?
      return true if node['platform_family'] == 'rhel' && node['platform_version'].to_i == 6
      false
    end

Для меня это выглядит несовместимым с приведенным выше предложением include, который ссылается на MysqlCookbook :: Helpers - похоже, он должен называться MysqlCookbook :: HelpersBase (опять же я не Ruby dev, поэтому я могу ошибаться здесь).

Я не совсем уверен, как продвигаться вперед с этим и заставить работать шеф-клиент успешно завершаться. Я нашел следующую проблему в кулинарных книгах GitHub - https://github.com/chef-cookbooks/mysql/issues/540, которая, похоже, соответствует тому, что происходит для меня, но у нее нет никаких ответов, так что это не особенно полезен для меня.

Любые ввод/предложения оценили, спасибо.

  • 0
    Работает ли он как и ожидалось с Chef 13?
  • 0
    Нет, версия клиента шеф-повара в приведенном выше 13.7.16
Показать ещё 2 комментария
Теги:
chef
cookbook

1 ответ

0

Файл provider_mysql_client.rb больше не существует в версии 8.xx поваренной книги.

Убедитесь, что у вас нет старых файлов из предыдущей версии 7.xx поваренной книги, лежащей вокруг.

Если вы используете Berkshelf, попробуйте удалить его кеш (~/.berkself).

Если вы копируете все на свой целевой сервер, а затем используете повара нуль (-z), посмотрите и там.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню