module-puppetlabs-mysql/manifests/server/mysqltuner.pp

52 lines
1.4 KiB
Puppet

#
class mysql::server::mysqltuner(
$ensure = 'present',
$version = 'v1.3.0',
$source = undef,
) {
if $source {
$_version = $source
$_source = $source
} else {
$_version = $version
$_source = "https://github.com/major/MySQLTuner-perl/raw/${version}/mysqltuner.pl"
}
if $ensure == 'present' {
# $::puppetversion doesn't exist in puppet 4.x so would break strict
# variables
if ! $::settings::strict_variables {
$_puppetversion = $::puppetversion
} else {
# defined only works with puppet >= 3.5.0, so don't use it unless we're
# actually using strict variables
$_puppetversion = defined('$puppetversion') ? {
true => $::puppetversion,
default => undef,
}
}
# see https://tickets.puppetlabs.com/browse/ENTERPRISE-258
if $_puppetversion and $_puppetversion =~ /Puppet Enterprise/ and versioncmp($_puppetversion, '3.8.0') < 0 {
class { '::staging':
path => '/opt/mysql_staging',
}
} else {
class { '::staging': }
}
staging::file { "mysqltuner-${_version}":
source => $_source,
}
file { '/usr/local/bin/mysqltuner':
ensure => $ensure,
mode => '0550',
source => "${::staging::path}/mysql/mysqltuner-${_version}",
require => Staging::File["mysqltuner-${_version}"],
}
} else {
file { '/usr/local/bin/mysqltuner':
ensure => $ensure,
}
}
}