28
|
1 |
# |
|
2 |
class mysql::server::mysqltuner( |
|
3 |
$ensure = 'present', |
|
4 |
$version = 'v1.3.0', |
|
5 |
$source = undef, |
|
6 |
) { |
|
7 |
|
|
8 |
if $source { |
|
9 |
$_version = $source |
|
10 |
$_source = $source |
|
11 |
} else { |
|
12 |
$_version = $version |
|
13 |
$_source = "https://github.com/major/MySQLTuner-perl/raw/${version}/mysqltuner.pl" |
|
14 |
} |
|
15 |
|
|
16 |
if $ensure == 'present' { |
|
17 |
# $::puppetversion doesn't exist in puppet 4.x so would break strict |
|
18 |
# variables |
|
19 |
if ! $::settings::strict_variables { |
|
20 |
$_puppetversion = $::puppetversion |
|
21 |
} else { |
|
22 |
# defined only works with puppet >= 3.5.0, so don't use it unless we're |
|
23 |
# actually using strict variables |
|
24 |
$_puppetversion = defined('$puppetversion') ? { |
|
25 |
true => $::puppetversion, |
|
26 |
default => undef, |
|
27 |
} |
|
28 |
} |
|
29 |
# see https://tickets.puppetlabs.com/browse/ENTERPRISE-258 |
|
30 |
if $_puppetversion and $_puppetversion =~ /Puppet Enterprise/ and versioncmp($_puppetversion, '3.8.0') < 0 { |
|
31 |
class { 'staging': |
|
32 |
path => '/opt/mysql_staging', |
|
33 |
} |
|
34 |
} else { |
|
35 |
class { 'staging': } |
|
36 |
} |
|
37 |
|
|
38 |
staging::file { "mysqltuner-${_version}": |
|
39 |
source => $_source, |
|
40 |
} |
|
41 |
file { '/usr/local/bin/mysqltuner': |
|
42 |
ensure => $ensure, |
|
43 |
mode => '0550', |
|
44 |
source => "${::staging::path}/mysql/mysqltuner-${_version}", |
|
45 |
require => Staging::File["mysqltuner-${_version}"], |
|
46 |
} |
|
47 |
} else { |
|
48 |
file { '/usr/local/bin/mysqltuner': |
|
49 |
ensure => $ensure, |
|
50 |
} |
|
51 |
} |
|
52 |
} |