У меня есть следующий класс, который устанавливает mysql и устанавливает пользователя, называемого пользователем, но когда команды create-database запускаются, пользователь еще не создан. Как я могу объединить команды так, чтобы пользователь был создан до того, как create-database попытается его использовать?Как связать классы с командами
class { '::mysql::server':
package_name => 'mariadb-server.x86_64',
root_password => 'root',
remove_default_accounts => true,
override_options => $override_options,
restart => true,
users => {
'[email protected]%' => {
ensure => 'present',
max_connections_per_hour => '0',
max_queries_per_hour => '0',
max_updates_per_hour => '0',
max_user_connections => '0',
password_hash => '...',
}
},
grants => {
'[email protected]%/*.*' => {
ensure => 'present',
options => ['GRANT'],
privileges => ['ALL'],
table => '*.*',
user => '[email protected]%',
},
}
}->
exec { 'create-database':
creates => '/opt/dbinstalled',
command => '/usr/bin/mysql -u user -puser < /create-db.sql'
}
Я использую пакет puppetlabs-mysql для установки mysql.
Если вы используете модуль puppetlabs-mysql, вы должны проверить его тип: https://github.com/puppetlabs/puppetlabs-mysql/blob/master/manifests/db.pp, это может занять забота о пользователе и базе данных – ptierno