Бродячие куколки-mysql Mysql_grant не удалось

Я хочу использовать vagrant, и я определил следующий файл кукол: http://pastebin.com/GfJK1ziS

Когда vagrant пытается установить модули, все работает как положено. Но когда он пытается настроить mysqlвсегда получаю эту ошибку:

 Error: Validation of Mysql_grant[${username}@%/${db_name}.*] failed: name must match user and table parameters

Что я могу сделать?

Насколько я могу сказать, это связано с этой строкой в puppetlabs_mysql модуль

https://github.com/puppetlabs/puppetlabs-mysql/commit/07b661dcea926981cf5cd1c703a1c982d6eb6ef1

я не знаю, что я должен изменить

1 ответ

Решение

Есть проблема с mysql_grants определение. Сбой на следующем тесте:

fail('name must match user and table parameters') if self[:name] != "#{self[:user]}/#{self[:table]}"

Сообщение об ошибке точно объясняет, что не так. Имя ресурса гранта должно совпадать user а также table, Так что поменяйте:

  '${username}@%/${db_name}.*' => {
    ...
    table      => "${db_name}.*",
    user       => "${username}@%",
  }

в

  "${username}@%/${db_name}.*" => {
    ...
    table      => "${db_name}.*",
    user       => "${username}@%",
  }

Строки в одинарных кавычках не интерполируют переменные в марионетке.

ОБНОВЛЕНИЕ: Есть также много проблем стиля. Вы смешиваете строки одинарных кавычек со строками двойных кавычек. Используйте Puppet-Lint, чтобы улучшить стиль вашего кода.

Другие вопросы по тегам