Ich habe die folgende Klasse, die mysql installiert und einen Benutzer namens Benutzer einrichtet, aber wenn die create-database Befehle ausgeführt werden, wurde der Benutzer noch nicht erstellt. Wie verknüpfe ich die Befehle, damit der Benutzer erstellt wird, bevor create-database versucht, sie zu verwenden?So ketten Klassen mit Befehlen
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'
}
Ich verwende das puppetlabs-mysql-Paket, um mysql zu installieren.
Wenn Sie das puppetlabs-mysql-Modul verwenden, sollten Sie den definierten Typ prüfen, mit dem es geliefert wird: https://github.com/puppetlabs/puppetlabs-mysql/blob/master/manifests/db.pp, könnte es dauern Sorge für den Benutzer und die Datenbank – ptierno