summaryrefslogtreecommitdiff
path: root/manifests/server/base.pp
blob: de421b3d37ca8ab03b1e750920029f1c582fca76 (plain)
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
class mysql::server::base {
  package { mysql-server:
    ensure => present,
  }
  file { 'mysql_main_cnf':
    path => '/etc/mysql/my.cnf',
    source => [
      "puppet:///modules/site_mysql/${::fqdn}/my.cnf",
      "puppet:///modules/site_mysql/my.cnf.${::operatingsystem}.{lsbdistcodename}",
      "puppet:///modules/site_mysql/my.cnf.${::operatingsystem}",
      "puppet:///modules/site_mysql/my.cnf",
      "puppet:///modules/mysql/config/my.cnf.${::operatingsystem}.{lsbdistcodename}",
      "puppet:///modules/mysql/config/my.cnf.${::operatingsystem}",
      "puppet:///modules/mysql/config/my.cnf"
    ],
    ensure => file,
    require => Package['mysql-server'],
    notify => Service['mysql'],
    owner => root, group => 0, mode => 0644;
  }

  file { 'mysql_data_dir':
    path => '/var/lib/mysql/data',
    ensure => directory,
    require => Package['mysql-server'],
    before => File['mysql_main_cnf'],
    owner => mysql, group => mysql, mode => 0755;
  }

  file { 'mysql_ibdata1':
    path => '/var/lib/mysql/data/ibdata1',
    ensure => file,
    require => Package['mysql-server'],
    before => File['mysql_setmysqlpass.sh'],
    owner => mysql, group => mysql, mode => 0660;
  }

  file { 'mysql_setmysqlpass.sh':
    path => '/usr/local/sbin/setmysqlpass.sh',
    source => "puppet:///modules/mysql/scripts/${::operatingsystem}/setmysqlpass.sh",
    require => Package['mysql-server'],
    owner => root, group => 0, mode => 0500;
  }

  file { 'mysql_root_cnf':
    path => '/root/.my.cnf',
    content => template('mysql/root/my.cnf.erb'),
    require => [ Package['mysql-server'] ],
    owner => root, group => 0, mode => 0400,
    notify => Exec['mysql_set_rootpw'],
  }

  exec { 'mysql_set_rootpw':
    command => '/usr/local/sbin/setmysqlpass.sh',
    unless => "mysqladmin -uroot status > /dev/null",
    require => [ File['mysql_setmysqlpass.sh'], Package['mysql-server'] ],
    refreshonly => true,
  }

  if $mysql::server::backup_cron {
    include mysql::server::cron::backup
  }

  if $mysql::server::optimize_cron {
    include mysql::server::cron::optimize
  }

  service { 'mysql':
    ensure => running,
    enable => true,
    hasstatus => true,
    require => Package['mysql-server'],
  }

  include mysql::server::account_security

  # Collect all databases and users
  Mysql_database<<| tag == "mysql_${::fqdn}" |>>
  Mysql_user<<| tag == "mysql_${::fqdn}"  |>>
  Mysql_grant<<| tag == "mysql_${::fqdn}" |>>
}