52 lines
1.4 KiB
Puppet
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,
|
|
}
|
|
}
|
|
}
|