Puppet Class: psick::mysql::root_password

Defined in:
manifests/mysql/root_password.pp

Overview

Class: psick::mysql::root_password

Set mysql root password

Parameters:

  • root_cnf_template (String) (defaults to: 'psick/mysql/root.my.cnf.erb')
  • password (Optional[Psick::Password]) (defaults to: $::psick::mysql::root_password)
  • manage (Boolean) (defaults to: $::psick::manage)
  • auto_prereq (Boolean) (defaults to: $::psick::auto_prereq)
  • no_noop (Boolean) (defaults to: false)


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

class psick::mysql::root_password (
  String $root_cnf_template = 'psick/mysql/root.my.cnf.erb',
  Optional[Psick::Password] $password = $::psick::mysql::root_password,
  Boolean $manage                      = $::psick::manage,
  Boolean $auto_prereq                 = $::psick::auto_prereq,
  Boolean $no_noop                     = false,
) {

  if $manage {
    if !$::psick::noop_mode and $no_noop {
      info('Forced no-noop mode.')
      noop(false)
    }

    if ! defined(File['/root/.my.cnf']) {
      file { '/root/.my.cnf':
        ensure  => 'present',
        path    => '/root/.my.cnf',
        mode    => '0400',
        content => template($root_cnf_template),
      }
    }

    file { '/root/.my.cnf.backup':
      ensure  => 'present',
      path    => '/root/.my.cnf.backup',
      mode    => '0400',
      content => template('psick/mysql/root.my.cnf.backup.erb'),
      replace => false,
      before  => [Exec['mysql_root_password'],
                  Exec['mysql_backup_root_my_cnf'] ],
    }

    exec { 'mysql_backup_root_my_cnf':
      path    => '/bin:/sbin:/usr/bin:/usr/sbin',
      unless  => 'diff /root/.my.cnf /root/.my.cnf.backup',
      command => 'cp /root/.my.cnf /root/.my.cnf.backup ; true',
      before  => File['/root/.my.cnf'],
    }

    exec { 'mysql_root_password':
      subscribe   => File['/root/.my.cnf'],
      path        => '/bin:/sbin:/usr/bin:/usr/sbin',
      refreshonly => true,
      command     => "mysqladmin --defaults-file=/root/.my.cnf.backup -uroot password '${password}'",
    }
  }
}