Puppet Class: puppet::storeconfig::mysql

Defined in:
manifests/storeconfig/mysql.pp

Overview

Parameters:

  • dbuser (Any)
  • dbpassword (Any)


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
# File 'manifests/storeconfig/mysql.pp', line 1

class puppet::storeconfig::mysql (
    $dbuser,
    $dbpassword
  ){

  include puppet::params

  # ---
  # MySQL backend settings
  Ini_setting {
    ensure  => 'present',
    section => 'master',
    path    => $puppet::params::puppet_conf,
  }

  ini_setting {
    'dbadapter':
      setting => 'dbadapter',
      value   => 'mysql';
    'dbmigrate':
      setting => 'dbmigrate',
      value   => true;
    'dbuser':
      setting => 'dbuser',
      value   => $dbuser;
    'dbpassword':
      setting => 'dbpassword',
      value   => $dbpassword;
    'dbserver':
      setting => 'dbserver',
      value   => $puppet::storeconfig::dbserver;
    'dbsocket':
      setting => 'dbsocket',
      value   => $puppet::storeconfig::dbsocket;
  }

  # ---
  # Install the mysql gem
  $package_name = $::operatingsystem ? {
    'Debian' => 'libmysql-ruby',
    default  => mysql,
  }
  $package_provider = $::operatingsystem ? {
    'Debian' => 'apt',
    default  => 'gem',
  }

  package { 'gem-mysql':
    ensure   => installed,
    name     => $package_name,
    provider => $package_provider,
  }

  # ---
  # Database setup
  database{ 'puppet':
    ensure  => present,
    charset => 'utf8',
  }

  database_user{ "${dbuser}@localhost":
    ensure        => present,
    password_hash => mysql_password($dbpassword),
    require       => Database['puppet'],
  }

  database_grant { 'puppet@localhost/puppet':
    privileges => [all],
    require    => [ Database['puppet'], Database_user['puppet@localhost'] ],
  }
}