107 lines
2.2 KiB
Puppet
107 lines
2.2 KiB
Puppet
|
|
# Install MySQL client utilities.
|
|
#
|
|
class mysql::client {
|
|
|
|
package { "mysql":
|
|
ensure => installed,
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install MySQL server
|
|
#
|
|
class mysql::server {
|
|
|
|
package { "mysql-server":
|
|
ensure => installed,
|
|
}
|
|
|
|
if $mysql_datadir {
|
|
file { "${mysql_datadir}":
|
|
ensure => directory,
|
|
mode => 0755,
|
|
owner => mysql,
|
|
group => mysql,
|
|
require => Package["mysql-server"],
|
|
}
|
|
file { "/srv/mysql":
|
|
ensure => link,
|
|
target => "${mysql_datadir}",
|
|
require => File["${mysql_datadir}"],
|
|
}
|
|
} else {
|
|
file { "/srv/mysql":
|
|
ensure => directory,
|
|
mode => 0755,
|
|
owner => mysql,
|
|
group => mysql,
|
|
require => Package["mysql-server"],
|
|
}
|
|
}
|
|
|
|
service { "mysqld":
|
|
ensure => running,
|
|
enable => true,
|
|
require => File["/srv/mysql"],
|
|
}
|
|
|
|
file { "/etc/my.cnf":
|
|
ensure => present,
|
|
source => [ "puppet:///files/mysql/my.cnf.${hostname}",
|
|
"puppet:///files/mysql/my.cnf",
|
|
"puppet:///mysql/my.cnf", ],
|
|
mode => 0644,
|
|
owner => root,
|
|
group => root,
|
|
require => Package["mysql-server"],
|
|
notify => Service["mysqld"],
|
|
}
|
|
|
|
file { "/etc/logrotate.d/mysql":
|
|
ensure => present,
|
|
source => "puppet:///mysql/mysql.logrotate",
|
|
mode => 0644,
|
|
owner => root,
|
|
group => root,
|
|
require => Package["mysql-server"],
|
|
}
|
|
|
|
file { "/var/lib/mysql":
|
|
ensure => directory,
|
|
mode => 0700,
|
|
owner => mysql,
|
|
group => mysql,
|
|
require => Package["mysql-server"],
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install MySQL status reporting.
|
|
#
|
|
class mysql::server::report {
|
|
|
|
package { "mysqlreport":
|
|
ensure => installed,
|
|
}
|
|
|
|
file { "/var/log/mysql-report":
|
|
ensure => directory,
|
|
mode => 0644,
|
|
owner => root,
|
|
group => root,
|
|
require => Package["mysql-server"],
|
|
}
|
|
|
|
file { "/etc/cron.daily/mysql-report":
|
|
ensure => present,
|
|
source => "puppet:///mysql/mysql-report.cron",
|
|
mode => 0755,
|
|
owner => root,
|
|
group => root,
|
|
require => File["/var/log/mysql-report"],
|
|
}
|
|
|
|
}
|