基本的に次のように動作するパペットのセットアップがあります。
- ユーザー「puppetdeploy」を作成します
- ユーザー「puppetdeploy」にすべてのテーブルへのアクセスを許可します
- 「puppetdeploy」を使用して、.sql ファイルからデータベースを作成および更新するスクリプトを実行します
- ユーザー「puppetdeploy」へのすべてのアクセス権を取り消します
.pp ファイルは次のようになります。
mysql_user { 'puppetdeploy@localhost':
ensure => 'present',
password_hash => '*****',
}->
mysql_grant { 'grant_all_for_puppetdeploy':
ensure => 'present',
options => ['GRANT'],
privileges => ['ALL'],
table => '*.*',
user => 'puppetdeploy@localhost',
}
#... execute scripts to import bunch of .sql files using mysql user 'puppetdeploy'
mysql_grant { 'revoke_all_for_puppetdeploy':
options => ['REVOKE'],
privileges => ['ALL'],
table => '*.*',
user => 'puppetdeploy@localhost',
}
mysql-module の以降のバージョンでは、これは機能しなくなりました。各許可の名前は「[user]/[table]」の形式にする必要があり、2 つ以上の mysql_grants に同じ名前を付けることは許可されていません。
puppetlabs-mysql 3.0.0 でこの制限を回避する方法はありますか、または一時的な mysql ユーザーを処理するより良い方法はありますか?