Установите кулинарную книгу mysql с Vagrant и Chef Solo

Мне очень трудно понять, как установить кулинарную книгу mysql (https://supermarket.chef.io/cookbooks/mysql) Я следовал инструкциям, но впервые использую Vagrant и Chef, и я постоянно застреваю при установке рецепта.

это мой бродячий файл: http://pastebin.com/9Fgts4J6

это мой файл шеф-повара (я использую библиотеку): http://pastebin.com/EfxPrC9S

это мой собственный рецепт 'mysql_config', расположенный в my_cookbooks/mysql_config/recipes/default.rb: http://pastebin.com/Zh5Y4z8b

это ошибка, которую я получаю:

==> default: ================================================================================
==> default: Error executing action `create` on resource 'template[default :create /etc/mysql-default/conf.d/default.cnf]'
==> default: ================================================================================
==> default:
==> default: Chef::Mixin::Template::TemplateError
==> default: ------------------------------------
==> default: undefined method `name' for nil:NilClass

это вывод моей консоли при запуске vagrant up: http://pastebin.com/ekkhHHru

Кажется, мне не хватает какой-то конфигурации, но я не знаю, что и где ее разместить, я искал учебники, но mysql_cookbook и vagrant в последнее время сильно изменились, поэтому я не смог найти ничего хорошего. Любая помощь в этом будет принята с благодарностью

Бродячий файл:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "puphpet/debian75-x64"

  config.vm.synced_folder "../."

  config.vm.provision "shell" do |s|
    s.path = "provision/setup.sh"
  end

  config.vm.provision "chef_solo" do |chef|
    chef.cookbooks_path = ["./cookbooks", "./my_cookbooks"]
    chef.add_recipe "mysql_config"
    chef.json = {
      "mysql_config" => {
        "name" => "localhost"
      }
    }
  end

end

Индивидуальный рецепт:

mysql_service 'default' do
  port '3306'
  version '5.5'
  name 'localhost'
  initial_root_password 'p4ssw0rd'
  action [:create, :start]
end

mysql_config 'default' do
  source 'my.cnf.erb'
  notifies :restart, 'mysql_service[default]'
  action :create
end

Вывод моей консоли:

iMacBert:Vagrant bert$ vagrant reload --provision
==> default: Attempting graceful shutdown of VM...
==> default: Checking if box 'puphpet/debian75-x64' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => /Users/bert/Vagrant
    default: /tmp/vagrant-chef-3/chef-solo-1/cookbooks => /Users/bert/Vagrant/cookbooks
    default: /tmp/vagrant-chef-3/chef-solo-2/cookbooks => /Users/bert/Vagrant/my_cookbooks
==> default: Running provisioner: shell...
    default: Running: /var/folders/y5/hhjgvl5j22g54t22yw8g7mbm0000gp/T/vagrant-shell20150108-3959-gkjuye.sh
==> default: stdin: is not a tty
==> default: Provisioning virtual machine...
==> default: Running provisioner: chef_solo...
    default: Installing Chef (latest)...
Generating chef JSON and uploading...
==> default: Running chef-solo...
==> default: stdin: is not a tty
==> default: [2015-01-08T07:40:57+00:00] INFO: Forking chef instance to converge...
==> default: [2015-01-08T07:40:57+00:00] INFO: *** Chef 12.0.3 ***
==> default: [2015-01-08T07:40:57+00:00] INFO: Chef-client pid: 6289
==> default: [2015-01-08T07:40:58+00:00] INFO: Setting the run_list to ["recipe[mysql_config]"] from CLI options
==> default: [2015-01-08T07:40:58+00:00] INFO: Run List is [recipe[mysql_config]]
==> default: [2015-01-08T07:40:58+00:00] INFO: Run List expands to [mysql_config]
==> default: [2015-01-08T07:40:58+00:00] INFO: Starting Chef Run for packer-virtualbox-iso.vagrantup.com
==> default: [2015-01-08T07:40:58+00:00] INFO: Running start handlers
==> default: [2015-01-08T07:40:58+00:00] INFO: Start handlers complete.
==> default: [2015-01-08T07:41:27+00:00] INFO: service[localhost :create mysql] stopped
==> default: [2015-01-08T07:41:27+00:00] INFO: file[localhost :create /etc/mysql/my.cnf] backed up to /var/chef/backup/etc/mysql/my.cnf.chef-20150108074127.236557
==> default: [2015-01-08T07:41:27+00:00] INFO: file[localhost :create /etc/mysql/my.cnf] deleted file at /etc/mysql/my.cnf
==> default: [2015-01-08T07:41:27+00:00] INFO: link[localhost :create /usr/share/my-default.cnf] created
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /etc/mysql-localhost] created directory /etc/mysql-localhost
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /etc/mysql-localhost] owner changed to 105
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /etc/mysql-localhost] group changed to 107
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /etc/mysql-localhost] mode changed to 750
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /etc/mysql-localhost/conf.d] created directory /etc/mysql-localhost/conf.d
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /etc/mysql-localhost/conf.d] owner changed to 105
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /etc/mysql-localhost/conf.d] group changed to 107
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /etc/mysql-localhost/conf.d] mode changed to 750
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /run/mysql-localhost] created directory /run/mysql-localhost
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /run/mysql-localhost] owner changed to 105
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /run/mysql-localhost] group changed to 107
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /run/mysql-localhost] mode changed to 755
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /var/log/mysql-localhost] created directory /var/log/mysql-localhost
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /var/log/mysql-localhost] owner changed to 105
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /var/log/mysql-localhost] group changed to 107
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /var/log/mysql-localhost] mode changed to 750
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /var/lib/mysql-localhost] created directory /var/lib/mysql-localhost
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /var/lib/mysql-localhost] owner changed to 105
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /var/lib/mysql-localhost] group changed to 107
==> default: [2015-01-08T07:41:27+00:00] INFO: directory[localhost :create /var/lib/mysql-localhost] mode changed to 750
==> default: [2015-01-08T07:41:27+00:00] INFO: template[localhost :create /etc/mysql-localhost/my.cnf] created file /etc/mysql-localhost/my.cnf
==> default: [2015-01-08T07:41:27+00:00] INFO: template[localhost :create /etc/mysql-localhost/my.cnf] updated file contents /etc/mysql-localhost/my.cnf
==> default: [2015-01-08T07:41:27+00:00] INFO: template[localhost :create /etc/mysql-localhost/my.cnf] owner changed to 105
==> default: [2015-01-08T07:41:27+00:00] INFO: template[localhost :create /etc/mysql-localhost/my.cnf] group changed to 107
==> default: [2015-01-08T07:41:27+00:00] INFO: template[localhost :create /etc/mysql-localhost/my.cnf] mode changed to 600
==> default: [2015-01-08T07:41:27+00:00] INFO: bash[localhost :create initialize mysql database] ran successfully
==> default: [2015-01-08T07:41:27+00:00] INFO: bash[localhost :create initialize mysql database] sending run action to bash[localhost :create initial records] (delayed)
==> default: [2015-01-08T07:41:30+00:00] INFO: bash[localhost :create initial records] ran successfully
==> default: [2015-01-08T07:41:30+00:00] INFO: template[localhost :start /etc/init.d/mysql-localhost] created file /etc/init.d/mysql-localhost
==> default: [2015-01-08T07:41:30+00:00] INFO: template[localhost :start /etc/init.d/mysql-localhost] updated file contents /etc/init.d/mysql-localhost
==> default: [2015-01-08T07:41:30+00:00] INFO: template[localhost :start /etc/init.d/mysql-localhost] owner changed to 0
==> default: [2015-01-08T07:41:30+00:00] INFO: template[localhost :start /etc/init.d/mysql-localhost] group changed to 0
==> default: [2015-01-08T07:41:30+00:00] INFO: template[localhost :start /etc/init.d/mysql-localhost] mode changed to 755
==> default: [2015-01-08T07:41:30+00:00] INFO: service[localhost :start mysql-localhost] enabled
==> default: [2015-01-08T07:41:32+00:00] INFO: service[localhost :start mysql-localhost] started
==> default: [2015-01-08T07:41:32+00:00] INFO: directory[default :create /etc/mysql-default/conf.d] created directory /etc/mysql-default/conf.d
==> default: [2015-01-08T07:41:32+00:00] INFO: directory[default :create /etc/mysql-default/conf.d] owner changed to 105
==> default: [2015-01-08T07:41:32+00:00] INFO: directory[default :create /etc/mysql-default/conf.d] group changed to 107
==> default: [2015-01-08T07:41:32+00:00] INFO: directory[default :create /etc/mysql-default/conf.d] mode changed to 750
==> default: 
==> default: ================================================================================
==> default: Error executing action `create` on resource 'template[default :create /etc/mysql-default/conf.d/default.cnf]'
==> default: ================================================================================
==> default: 
==> default: Chef::Mixin::Template::TemplateError
==> default: ------------------------------------
==> default: undefined method `name' for nil:NilClass
==> default: 
==> default: Resource Declaration:
==> default: ---------------------
==> default: 
==> default: # In /tmp/vagrant-chef-3/chef-solo-1/cookbooks/mysql/libraries/provider_mysql_config.rb
==> default: 
==> default: 
==> default:  38:         template "#{new_resource.name} :create #{include_dir}/#{new_resource.config_name}.cnf" do
==> default:  39:           path "#{include_dir}/#{new_resource.config_name}.cnf"
==> default:  40:           owner new_resource.owner
==> default:  41:           group new_resource.group
==> default: 
==> default:  42:           mode '0640'
==> default:  43:           variables(new_resource.variables)
==> default:  44:           source new_resource.source
==> default:  45:           cookbook new_resource.cookbook
==> default: 
==> default:  46:           action :create
==> default:  47:         end
==> default: 
==> default:  48:       end
==> default: 
==> default: 
==> default: Compiled Resource:
==> default: ------------------
==> default: # Declared in /tmp/vagrant-chef-3/chef-solo-1/cookbooks/mysql/libraries/provider_mysql_config.rb:38:in `block in <class:MysqlConfig>'
==> default: 
==> default: template("default :create /etc/mysql-default/conf.d/default.cnf") do
==> default:   action [:create]
==> default:   retries 0
==> default:   retry_delay 2
==> default: 
==> default:   default_guard_interpreter :default
==> default:   path "/etc/mysql-default/conf.d/default.cnf"
==> default:   backup 5
==> default:   atomic_update true
==> default: 
==> default:   source "my.cnf.erb"
==> default: 
==> default:   declared_type :template
==> default:   cookbook_name :mysql_config
==> default:   owner "mysql"
==> default: 
==> default:   group "mysql"
==> default: 
==> default:   mode "0640"
==> default: 
==> default: end
==> default: 
==> default: 
==> default: Template Context:
==> default: -----------------
==> default: on line #1
==> default:   1: # Chef generated my.cnf for instance mysql-<%= @config.name %>
==> default: 
==> default:   2: 
==> default:   3: [client]
==> default: 
==> default:   4: <% if @config.charset %>
==> default:   5: default-character-set          = <%= @config.charset %>
==> default: 
==> default: 
==> default: [2015-01-08T07:41:32+00:00] INFO: Running queued delayed notifications before re-raising exception
==> default: 
==> default: ================================================================================
==> default: Error executing action `create` on resource 'mysql_config[default]'
==> default: ================================================================================
==> default: 
==> default: 
==> default: Chef::Mixin::Template::TemplateError
==> default: ------------------------------------
==> default: undefined method `name' for nil:NilClass
==> default: 
==> default: 
==> default: Resource Declaration:
==> default: ---------------------
==> default: # In /tmp/vagrant-chef-3/chef-solo-2/cookbooks/mysql_config/recipes/default.rb
==> default: 
==> default: 
==> default: 
==> default:  17: mysql_config 'default' do
==> default:  18:   source 'my.cnf.erb'
==> default:  19:   notifies :restart, 'mysql_service[default]'
==> default: 
==> default:  20:   action :create
==> default:  21: end
==> default: 
==> default: 
==> default: 
==> default: Compiled Resource:
==> default: ------------------
==> default: # Declared in /tmp/vagrant-chef-3/chef-solo-2/cookbooks/mysql_config/recipes/default.rb:17:in `from_file'
==> default: 
==> default: mysql_config("default") do
==> default: 
==> default:   action [:create]
==> default:   updated true
==> default:   updated_by_last_action true
==> default:   retries 0
==> default: 
==> default:   retry_delay 2
==> default: 
==> default:   default_guard_interpreter :default
==> default:   declared_type :mysql_config
==> default: 
==> default:   cookbook_name :mysql_config
==> default:   recipe_name "default"
==> default:   source "my.cnf.erb"
==> default:   group "mysql"
==> default:   owner "mysql"
==> default:   instance "default"
==> default: 
==> default:   config_name "default"
==> default: end
==> default: 
==> default: 
==> default: Template Context:
==> default: -----------------
==> default: on line #1
==> default:   1: # Chef generated my.cnf for instance mysql-<%= @config.name %>
==> default:   2: 
==> default: 
==> default:   3: [client]
==> default:   4: <% if @config.charset %>
==> default: 
==> default:   5: default-character-set          = <%= @config.charset %>
==> default: 
==> default: 
==> default: [2015-01-08T07:41:32+00:00] INFO: Running queued delayed notifications before re-raising exception
==> default: [2015-01-08T07:41:32+00:00] ERROR: Running exception handlers
==> default: [2015-01-08T07:41:32+00:00] ERROR: Exception handlers complete
==> default: [2015-01-08T07:41:32+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> default: [2015-01-08T07:41:32+00:00] ERROR: 
==> default: 
==> default: Chef::Mixin::Template::TemplateError (undefined method `name' for nil:NilClass) on line #1:
==> default: 
==> default:   1: # Chef generated my.cnf for instance mysql-<%= @config.name %>
==> default:   2: 
==> default:   3: [client]
==> default:   4: <% if @config.charset %>
==> default:   5: default-character-set          = <%= @config.charset %>
==> default: 
==> default:   (erubis):1:in `block in evaluate'
==> default:   /opt/chef/embedded/lib/ruby/gems/2.1.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb:74:in `instance_eval'
==> default:   /opt/chef/embedded/lib/ruby/gems/2.1.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb:74:in `evaluate'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/mixin/template.rb:126:in `_render_template'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/mixin/template.rb:112:in `render_template'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/provider/template/content.rb:43:in `file_for_provider'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/file_content_management/content_base.rb:40:in `tempfile'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/provider/file.rb:451:in `tempfile'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/provider/file.rb:337:in `do_generate_content'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/provider/file.rb:148:in `action_create'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/provider.rb:145:in `run_action'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource.rb:582:in `run_action'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/runner.rb:49:in `run_action'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/runner.rb:81:in `block (2 levels) in converge'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/runner.rb:81:in `each'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/runner.rb:81:in `block in converge'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/resource_list.rb:83:in `block in execute_each_resource'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/resource_list.rb:81:in `execute_each_resource'
==> default:   /opt/chef/embedded/lib/ruby/2.1.0/forwardable.rb:183:in `execute_each_resource'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/runner.rb:80:in `converge'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/provider/lwrp_base.rb:61:in `recipe_eval_with_update_check'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/provider/lwrp_base.rb:45:in `block in action'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/provider.rb:145:in `run_action'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource.rb:582:in `run_action'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/runner.rb:49:in `run_action'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/runner.rb:81:in `block (2 levels) in converge'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/runner.rb:81:in `each'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/runner.rb:81:in `block in converge'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/resource_list.rb:83:in `block in execute_each_resource'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/stepable_iterator.rb:116:in `call'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/resource_collection/resource_list.rb:81:in `execute_each_resource'
==> default:   /opt/chef/embedded/lib/ruby/2.1.0/forwardable.rb:183:in `execute_each_resource'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/runner.rb:80:in `converge'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/client.rb:315:in `converge'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/client.rb:400:in `block in run'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/client.rb:399:in `catch'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/client.rb:399:in `run'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/application.rb:261:in `block in fork_chef_client'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/application.rb:249:in `fork'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/application.rb:249:in `fork_chef_client'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/application.rb:215:in `block in run_chef_client'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/local_mode.rb:38:in `with_server_connectivity'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/application.rb:201:in `run_chef_client'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/application/solo.rb:245:in `block in interval_run_chef_client'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/application/solo.rb:234:in `loop'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/application/solo.rb:234:in `interval_run_chef_client'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/application/solo.rb:224:in `run_application'
==> default:   /opt/chef/embedded/apps/chef/lib/chef/application.rb:58:in `run'
==> default:   /opt/chef/embedded/apps/chef/bin/chef-solo:25:in `<top (required)>'
==> default:   /usr/bin/chef-solo:40:in `load'
==> default:   /usr/bin/chef-solo:40:in `<main>'
==> default: [2015-01-08T07:41:32+00: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.
iMacBert:Vagrant bert$ 

person Ernie    schedule 07.01.2015    source источник
comment
У кого-нибудь есть идея? Я включил код в вопрос выше   -  person Ernie    schedule 09.01.2015
comment
У кого-нибудь была возможность взглянуть на это? На первый взгляд, это где-то ошибка или я что-то не так делаю в настройках/рабочем процессе?   -  person Ernie    schedule 14.01.2015
comment
Я думаю, но я действительно не уверен, что вы должны удалить исходный код из mysql_config, чтобы сохранить шаблон по умолчанию (если это то, что вы хотите, я мог неправильно понять). Ошибка в config.name, возможно, ресурс не установил его должным образом, я не могу сказать, почему.   -  person Tensibai    schedule 14.01.2015


Ответы (2)


У меня такая же проблема. Я недостаточно знаю о шаблонах Chef, чтобы понять, почему @config не установлен, но он определенно равен нулю, что и вызывает ошибку. Вы даже не можете оставить параметр источника пустым, потому что кулинарная книга mysql будет искать default.cnf.erb, которого не существует, и просто выдаст немного другую ошибку. Вместо этого вы должны указать практически пустой источник, как сказал Эрни.

Однако тогда у вас будет совершенно пустой файл conf, поэтому, если мы это выясним, нам придется искать его снова. Вместо этого я сделал это:

<% if [email protected]? %>

    <% if @config.name %># Chef generated my.cnf for instance mysql-<%= @config.name %><% end %>
    [client]
    default-character-set          = <%= @config.charset %>
    <% end %>
    <% if @config.port %>
    port                           = <%= @config.port %>
    <% end %>
    <% if @socket_file %>
    socket                         = <%= @socket_file %>
    <% end %>

    [mysql]
    <% if @config.charset %>
    default-character-set          = <%= @config.charset %>
    <% end %>

    [mysqld]
    <% if @config.run_user %>
    user                           = <%= @config.run_user %>
    <% end %>
    <% if @pid_file %>
    pid-file                       = <%= @pid_file %>
    <% end %>
    <% if @socket_file %>
    socket                         = <%= @socket_file %>
    <% end %>
    <% if @config.bind_address %>
    bind-address                   = <%= @config.bind_address %>
    <% end %>
    <% if @config.port %>
    port                           = <%= @config.port %>
    <% end %>
    <% if @data_dir %>
    datadir                        = <%= @data_dir %>
    <% end %>
    <% if @tmp_dir %>
    tmpdir                         = <%= @tmp_dir %>
    <% end %>
    <% if @lc_messages_dir %>
    lc-messages-dir                = <%= @lc_messages_dir %>
    <% end %>
    <% if @error_log %>
    log-error                      = <%= @error_log %>
    <% end %>
    <% if @include_dir %>
    !includedir <%= @include_dir %>
    <% end %>

    [mysqld_safe]
    <% if @socket_file %>
    socket                         = <%= @socket_file %>
    <% end %>
<% end %>

Итак, теперь мы не получаем ошибок, но как только мы разберемся, как правильно установить @config, мы сможем удалить этот блок и соответствующий ему endblock.

<% if [email protected]? %>

и быть на нашем пути!

Я обновлю этот ответ, если смогу понять, как заставить работать переменную @config.

person Josh    schedule 13.03.2015

Использовал файл конфигурации из фикстур: https://github.com/chef-cookbooks/mysql/tree/master/test/fixtures/cookbooks

Теперь это работает:

# /my_cookbooks/mysql_config/recipes/default.rb

mysql_service 'default' do
  version '5.5'
  action [:create, :start]
end

mysql_config 'hello' do
  instance 'default'
  source 'hello.conf.erb'
  version '5.5'
  action :create
end

hello.conf.erb пуст

person Ernie    schedule 19.01.2015