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

}