puppet/mysql/manifests/init.pp

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"],
}
}