3

我想使用 vagrant,我定义了以下 puppet 文件: 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

我不知道我必须改变什么

4

1 回答 1

2

定义有问题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 中插入变量。

更新: 还有很多风格问题。您正在混合单引号字符串和双引号字符串。使用puppet-lint改进代码的风格。

于 2015-04-29T09:40:18.610 回答