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-lintを使用して、コードのスタイルを改善します。

于 2015-04-29T09:40:18.610 に答える