Puppet Class: mysql::params

Overview



1
2
3
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
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
# File 'manifests/params.pp', line 1

class mysql::params {

  #MySQL config
  $binlogdir_default='/var/mysql/binlogs'
  $binlog_format_default='STATEMENT'
  $charset_default='utf8'
  $datadir_default='/var/mysql/datadir/'
  $ensure_default='installed'
  $expirelogsdays_default='5'
  $ignoreclientcharset_default=false
  $innodb_buffer_pool_size_default='2G'
  $innodb_log_file_size_default='128M'
  $join_buffer_size_default='131072'
  $key_buffer_size_default='32M'
  $logdir_default='/var/log/mysql/'
  $max_binlog_size_default='1073741824'
  $max_connections_default='500'
  $max_heap_table_size_default='32M'
  $max_relay_log_size_default='0'
  $max_user_connections_default='0'
  $open_files_limit_default='65535'
  $query_cache_limit_default='1048576'
  $query_cache_size_default='0'
  $readonly_default=false
  $relaylogdir_default='/var/mysql/binlogs'
  $replicate_ignore_db_default=undef
  $serverid_default='1'
  $skip_external_locking_default=false
  $slave_default=false
  $sort_buffer_size_default='2097144'
  $srcdir_default='/usr/local/src'
  $table_open_cache_default='100'
  $thread_cache_size_default='50'
  $thread_stack_default='262144'
  $tmpdir_default=undef
  $log_bin_trust_function_creators_default=undef

  #mysqldump config
  $mysqldump_quick_default=false
  $mysqldump_quote_names_default=false

  #isamchk config
  $isamchk_key_buffer_default=undef

  $mysql_community_pkgs= [ 'mysql-community-server' ]

  $percona_xtrabackup_package_name = {
                                        '' => 'percona-xtrabackup',
                                        '24' => 'percona-xtrabackup-24',
                                        '20' => 'percona-xtrabackup-20',
                                      }
  $percona_xtradbcluster_package_name = {
                                          '5.6' => [ 'percona-xtradb-cluster-server-5.6', 'percona-xtradb-cluster-client-5.6' ],
                                          '5.7' => [ 'percona-xtradb-cluster-server-5.7', 'percona-xtradb-cluster-client-5.7' ],
                                        }
  $perconarepo_reponame = 'percona-release'

  case $::osfamily
  {
    'redhat':
    {
      $mysql_username_uid_default = '27'
      $mysql_username_gid_default = '27'

      $servicename='mysqld'

      $repo_update_command='/bin/true'

      $perconatoolkit_wgetcmd='bash -c \'echo https://www.percona.com$(curl https://www.percona.com/downloads/percona-toolkit/ 2>&1 | grep -Eo \'href="[^"]*rpm"\' | cut -f 2 -d\")\''

      $package_provider='rpm'

      $mysql_repo_name = {
                            '5.7' => 'mysql57-community-release',
                        }

      $perconarepo_repo = 'http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm'

      case $::operatingsystemrelease
      {
        /^6.*$/:
        {
          $systemd=false
          $manage_default_service=true
          $pid_location_default='datadir'

          $mysql_repo = {
                          '5.7' => 'http://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm',
                        }
        }
        /^7.*$/:
        {
          $systemd=true
          $manage_default_service=true
          $pid_location_default='datadir'

          $mysql_repo = {
                          '5.7' => 'http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm',
                        }
        }
        default: { fail("Unsupported RHEL/CentOS version! - ${::operatingsystemrelease}")  }
      }
    }
    'Debian':
    {
      $mysql_username_uid_default = '113'
      $mysql_username_gid_default = '119'

      $servicename='mysql'

      $repo_update_command='apt-get update'

      $perconatoolkit_wgetcmd='bash -c \'echo https://www.percona.com$(curl https://www.percona.com/downloads/percona-toolkit/ 2>&1 | grep -Eo \'href="[^"]*deb"\' | cut -f 2 -d\")\''

      $package_provider='dpkg'

      $mysql_repo_name = {
                            '5.7' => 'mysql-apt-config',
                        }
      $perconarepo_repo = "https://repo.percona.com/apt/percona-release_0.1-4.${::lsbdistcodename}_all.deb"

      case $::operatingsystem
      {
        'Ubuntu':
        {

          $mysql_repo = {
                          '5.7' => 'https://dev.mysql.com/get/mysql-apt-config_0.8.3-1_all.deb',
                        }
          case $::operatingsystemrelease
          {
            /^14.*$/:
            {
              $systemd=false
              $manage_default_service=true
              $pid_location_default='datadir'
            }
            /^16.*$/:
            {
              $systemd=true
              $manage_default_service=true
              $pid_location_default='run'
            }
            default: { fail("Unsupported Ubuntu version! - ${::operatingsystemrelease}")  }
          }
        }
        'Debian': { fail('Unsupported')  }
        default: { fail('Unsupported Debian flavour!')  }
      }
    }
    default: { fail('Unsupported OS!')  }
  }
}