Puppet Class: percona::install
- Defined in:
- manifests/install.pp
Overview
Class: percona::install
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'manifests/install.pp', line 4
class percona::install {
$server = $::percona::server
$client = $::percona::client
$percona_version = $::percona::percona_version
case $::operatingsystem {
/(?i:debian|ubuntu)/: {
$pkg_version = $percona_version
$pkg_client_default = "percona-server-client-${pkg_version}"
$pkg_server_default = "percona-server-server-${pkg_version}"
case $percona_version {
'5.1': {
$pkg_common_default = [
'percona-toolkit',
'percona-server-common',
]
}
default: {
$pkg_common_default = [
'percona-toolkit',
"percona-server-common-${pkg_version}",
]
}
}
}
/(?i:redhat|centos)/: {
$pkg_version = regsubst($percona_version, '\.', '', 'G')
$pkg_client_default = "Percona-Server-client-${pkg_version}"
$pkg_server_default = "Percona-Server-server-${pkg_version}"
$pkg_common_default = [
"Percona-Server-shared-${pkg_version}",
'percona-toolkit'
]
# Installation of Percona's shared compatibility libraries
case $percona_version {
'5.5': {
$pkg_compat = $::percona::pkg_compat ? {
undef => 'Percona-Server-shared-compat',
default => $::percona::pkg_compat,
}
}
default: {
$pkg_compat = $::percona::pkg_compat ? {
undef => 'Percona-SQL-shared-compat',
default => $::percona::pkg_compat,
}
}
}
}
default: {
fail('Operating system not supported yet.')
}
}
$pkg_client = $::percona::pkg_client ? {
undef => $pkg_client_default,
default => $::percona::pkg_client,
}
$pkg_server = $::percona::pkg_server ? {
undef => $pkg_server_default,
default => $::percona::pkg_server,
}
$pkg_common = $::percona::pkg_common ? {
undef => $pkg_common_default,
default => $::percona::pkg_common,
}
Package {
require => [
Class['percona::preinstall']
],
}
# Installation of Percona's shared libraries
package { $pkg_common:
ensure => 'present',
}
if $pkg_compat {
package {$pkg_compat:
ensure => 'present',
before => Package[$pkg_common],
}
}
# Installation of the Percona client
if ($client or $server) {
package { $pkg_client:
ensure => 'present',
require => Package[$pkg_common],
}
}
# Installation of the Percona server
if $server {
package { $pkg_server:
ensure => 'present',
require => [
Package[$pkg_client],
Package[$pkg_common],
],
}
}
}
|