Puppet Class: librenms::mysql
- Defined in:
- manifests/mysql.pp
Summary
Manages all MySQL resourcesOverview
Manages all MySQL resources
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'manifests/mysql.pp', line 7
class librenms::mysql {
$sane_default = {
'bind-address' => '*',
'innodb_data_file_path' => 'innodata0:512M:autoextend',
'innodb_data_home_dir' => '/var/lib/mysql/innodb_data',
'innodb_flush_log_at_trx_commit' => '0',
'innodb_log_buffer_size' => '128M',
'innodb_log_file_size' => '1024M',
'innodb_log_group_home_dir' => '/var/lib/mysql/innodb_log',
'innodb_thread_concurrency' => '0',
'innodb_file_per_table' => '1',
'log-queries-not-using-indexes' => true,
'skip-external-locking' => true,
'tmpdir' => '/var/lib/mysqltmp',
}
$mysqld = deep_merge($sane_default, $librenms::mysql_configuration)
$managed_dirs = [
'/var/lib/mysql', # datadir (default)
$mysqld['innodb_data_home_dir'],
$mysqld['innodb_log_group_home_dir'],
$mysqld['tmpdir'],
]
$managed_dirs.each | $dir | {
exec { "${dir}-managed_dir-mkdir":
command => "/bin/mkdir -p ${dir}",
unless => "/usr/bin/dpkg -s ${librenms::mysql_server_package_name}",
notify => Exec["${dir}-managed_dir-chmod"],
before => Class['mysql::server'],
}
exec { "${dir}-managed_dir-chmod":
command => "/bin/chmod 777 ${dir}",
refreshonly => true,
}
}
# Fix permission after Mysql install
$managed_dirs.each | $_dir | {
file { $_dir:
ensure => directory,
mode => '0700',
owner => 'mysql',
group => 'mysql',
require => Class['mysql::server'],
}
}
# End of Mysql install fix
class { 'mysql::server':
package_name => $librenms::mysql_server_package_name,
package_ensure => $librenms::mysql_server_package_ensure,
root_password => $librenms::mysql_root_password,
remove_default_accounts => true,
override_options => {
mysqld => $mysqld,
},
}
class { 'mysql::client':
package_name => $librenms::mysql_client_package_name,
package_ensure => $librenms::mysql_client_package_ensure,
}
# Import SQL if path is specified
if $librenms::import_mysqldump {
$_sql = $librenms::import_mysqldump
$_enforce_sql = true
}
else {
$_sql = undef
$_enforce_sql = undef
}
mysql::db { 'librenms':
user => $librenms::mysql_librenms_username,
password => $librenms::mysql_librenms_password,
host => 'localhost',
grant => ['ALL'],
collate => 'utf8_unicode_ci',
charset => 'utf8',
sql => $_sql,
enforce_sql => $_enforce_sql,
require => Class['::mysql::client'],
import_timeout => 0,
}
## BACKUP ##
class { 'mysql::server::backup':
backupuser => $librenms::mysql_librenms_username,
backuppassword => $librenms::mysql_librenms_password,
backupdirowner => $librenms::librenms_owner,
backupdirgroup => $librenms::librenms_group,
backupdir => "${librenms::vcs_root_dir}/backup/",
backupdirmode => '0644',
maxallowedpacket => '128M',
file_per_database => true,
time => ['01', '30'], # 01:30 (AM)
backuprotate => $librenms::mysql_backup_revisions,
}
}
|