Puppet Class: percona

Inherits:
percona::params
Defined in:
manifests/init.pp

Overview

Class: percona

This class installs percona

Parameters:

For a complete overview of the parameters you can use, take a look at percona::params. Parameters documented here can not be set globally.

Parameter Extras:

For certain options, using ‘.’ (dots) is not allowed. For this you can use $::percona::sanitized_servername. (‘.’ are replaced by ‘-’)

Actions:

- Install PerconaDB

Requires:

Sample Usage:

This is the nodes.pp for the percona class

  node hostname{

    # This is generic mysql stuff

    class {
      'apt':;   # debian only
      'percona':
        server          => true,
        percona_version => '5.1',
    }

    ## Creation of databases
    percona::database{'<databasename>':
      ensure => present
    }

    ## This must be run on the master
    percona::rights {'Set rights for replication':
      user     => 'repl',
      password => 'repl',
      priv     => ['Repl_slave_priv'],
      host     => '$hostname',
    }

THIS IS CURRENTLY NOT IMPLEMENTED!!!
#
#    ## This must be run on the slave nodes:
#    percona::slave { "whatever":
#      masterhost        => "hostip",
#      masterlog         => "masterlog",
#      masteruser        => "Replication user",
#      masterpassword    => "Repication password",
#      masterlogposition => "Masterlogposition",
#    }
#  }

Parameters:

  • percona_version (Any) (defaults to: $percona::params::percona_version)
  • client (Any) (defaults to: $percona::params::client)
  • config_content (Any) (defaults to: $percona::params::config_content)
  • config_dir_mode (Any) (defaults to: $percona::params::config_dir_mode)
  • config_file_mode (Any) (defaults to: $percona::params::config_file_mode)
  • config_user (Any) (defaults to: $percona::params::config_user)
  • config_group (Any) (defaults to: $percona::params::config_group)
  • config_template (Any) (defaults to: $percona::params::config_template)
  • config_skip (Any) (defaults to: $percona::params::config_skip)
  • config_replace (Any) (defaults to: $percona::params::config_replace)
  • config_include_dir (Any) (defaults to: $::percona::params::config_include_dir)
  • server (Any) (defaults to: $percona::params::server)
  • service_enable (Any) (defaults to: $percona::params::service_enable)
  • service_ensure (Any) (defaults to: $percona::params::service_ensure)
  • service_name (Any) (defaults to: $percona::params::service_name)
  • service_restart (Any) (defaults to: $percona::params::service_restart)
  • daemon_group (Any) (defaults to: $percona::params::daemon_group)
  • daemon_user (Any) (defaults to: $percona::params::daemon_user)
  • tmpdir (Any) (defaults to: $percona::params::tmpdir)
  • logdir (Any) (defaults to: $percona::params::logdir)
  • logdir_group (Any) (defaults to: $percona::params::logdir_group)
  • socket (Any) (defaults to: $percona::params::socket)
  • datadir (Any) (defaults to: $percona::params::datadir)
  • targetdir (Any) (defaults to: $percona::params::targetdir)
  • errorlog (Any) (defaults to: $percona::params::errorlog)
  • pidfile (Any) (defaults to: $percona::params::pidfile)
  • manage_repo (Any) (defaults to: $percona::params::manage_repo)
  • pkg_client (Any) (defaults to: $percona::params::pkg_client)
  • pkg_common (Any) (defaults to: $percona::params::pkg_common)
  • pkg_server (Any) (defaults to: $percona::params::pkg_server)
  • pkg_compat (Any) (defaults to: $percona::params::pkg_compat)
  • pkg_version (Any) (defaults to: $percona::params::pkg_version)
  • mgmt_cnf (Any) (defaults to: $percona::params::mgmt_cnf)
  • configuration (Any) (defaults to: {})
  • servername (Any) (defaults to: $::fqdn)
  • template (Any) (defaults to: $percona::params::template)
  • config_dir (Any) (defaults to: $percona::params::config_dir)
  • config_file (Any) (defaults to: $percona::params::_config_file)


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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'manifests/init.pp', line 66

class percona (
  $percona_version  = $percona::params::percona_version,
  $client           = $percona::params::client,
  $config_content   = $percona::params::config_content,
  $config_dir_mode  = $percona::params::config_dir_mode,
  $config_file_mode = $percona::params::config_file_mode,
  $config_user      = $percona::params::config_user,
  $config_group     = $percona::params::config_group,
  $config_template  = $percona::params::config_template,
  $config_skip      = $percona::params::config_skip,
  $config_replace   = $percona::params::config_replace,
  $config_include_dir = $::percona::params::config_include_dir,
  $server           = $percona::params::server,
  $service_enable   = $percona::params::service_enable,
  $service_ensure   = $percona::params::service_ensure,
  $service_name     = $percona::params::service_name,
  $service_restart  = $percona::params::service_restart,
  $daemon_group     = $percona::params::daemon_group,
  $daemon_user      = $percona::params::daemon_user,

  $tmpdir           = $percona::params::tmpdir,
  $logdir           = $percona::params::logdir,
  $logdir_group     = $percona::params::logdir_group,
  $socket           = $percona::params::socket,
  $datadir          = $percona::params::datadir,
  $targetdir        = $percona::params::targetdir,
  $errorlog         = $percona::params::errorlog,
  $pidfile          = $percona::params::pidfile,
  $manage_repo      = $percona::params::manage_repo,

  $pkg_client       = $percona::params::pkg_client,
  $pkg_common       = $percona::params::pkg_common,
  $pkg_server       = $percona::params::pkg_server,
  $pkg_compat       = $percona::params::pkg_compat,
  $pkg_version      = $percona::params::pkg_version,

  $mgmt_cnf         = $percona::params::mgmt_cnf,

  ## These options can NOT be defaulted in percona::params.
  # They are specific for this server instance.
  $configuration    = {},
  $servername       = $::fqdn,

  ## These settings are defaulted distro specific ##
  $template         = $percona::params::template,
  $config_dir       = $percona::params::config_dir,
  $config_file      = $percona::params::_config_file,

) inherits percona::params {

  $config_include_dir_default = $::percona::params::config_include_dir_default
  $config_includedir = $config_include_dir ? {
    undef   => $config_include_dir_default,
    default => $config_include_dir,
  }

  $sanitized_servername = regsubst($::percona::servername,'\.','-','G')


  ## Translate settings in params in a hash.
  $params = {
    'global'                      => {
      'mysqld/#-puppet-#servername'      => $::percona::servername,
      'mysqld/#-puppet-#logdir'          => $::percona::logdir,
      'mysqld/datadir'                   => $::percona::datadir,
      'mysqld/socket'                    => $::percona::socket,
      'mysqld/user'                      => $::percona::daemon_user,
      'mysqld/innodb_log_group_home_dir' => $::percona::datadir,
      'mysqld/log_bin'                   => "${::percona::datadir}/${sanitized_servername}-bin",
      'mysqld/relay_log'                 => "${::percona::datadir}/${sanitized_servername}-relay",
      'mysqld/slow_query_log_file'       => "${::percona::logdir}/${::percona::servername}-slow.log",
      'mysqld/symbolic-links'            => '0',

      'mysqld_safe/log-error'            => $::percona::errorlog,
      'mysqld_safe/pid-file'             => $::percona::pidfile,

      'xtrabackup/datadir'               => $::percona::datadir,
      'xtrabackup/target_dir'            => $::percona::targetdir,
    },
  }

  include percona::preinstall
  include percona::install
  include percona::config
  include percona::service

  Class['percona::preinstall'] ->
  Class['percona::install'] ->
  Class['percona::config'] ->
  Class['percona::service']

}