Report abuse

Node Definition

1
2
3
4
node 'ctier.domain.net' inherits manager {
   $myserverid = "22"
   include cx::db
}

MySQL Module definition (mysql/manifests/init.pp)

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
# MySQL installation and initialization module - ensure mysql is installed
class mysql {
    package { ["mysql"]: ensure => present }
    package { ["mysql-server"]: ensure => present }

    file    { "/var/log/mysql":
        ensure      => directory,
        owner       => "mysql",
        group       => "mysql",
        mode        => "755",
        require     => Package["mysql"],
    }

    if $myserverid {
        $mysqlid = $myserverid
    }else{
        $mysqlid  = "0"
    }

        notice($mysqlid)
    file { "/etc/my.cnf":
        ensure      => present,
        owner       => "root",
        group       => "root",
        mode        => "644",
        require     => Package["mysql-server"],
        content     => template("/etc/puppet/modules/modules/mysql/templates/my.erb");
    }

    $password = "temp"
    exec { "Set MySQL server root password":
    subscribe => [ Package["mysql-server"], Package["mysql"] ],
    refreshonly => true,
    unless => "mysqladmin -uroot -p$password status",
    path => "/bin:/usr/bin",
    command => "mysqladmin -uroot password $password",
    }

    exec { "Initialize the database before first boot":
    subscribe => [ Package["mysql-server"], Package["mysql"] ],
    refreshonly => true,
    unless => "mysqladmin -uroot -p$password status",
    path => "/bin:/usr/bin",
    command => "/usr/bin/mysql_install_db",
    }

    service { "mysqld":
        ensure      => running,
        enable      => true,
        subscribe   => File["/etc/my.cnf"];
    }