Report abuse

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
#
# database configuration
#
$master_unique_id = "2010060201"

class database {


        include virtual-users
        include virtual-groups
        require basevars

        realize(User["mysql"])
        realize(Group["mysql"])

        package { "mysql":
                ensure => "5.1.47-1.el5.remi";
        }

        package { "mysql-server":
                ensure => "5.1.47-1.el5.remi";
        }

        package { "mysql-bench":
                ensure => "5.1.47-1.el5.remi";
        }

        file { [ "/var/lib/mysql/data", "/var/lib/mysql/mysql" ]:
                ensure => directory,
                owner => 'mysql',
                group => 'mysql',
                recurse => true,
        }

        file { "/var/lib/mysql":
                ensure => directory,
                owner => 'mysql',
                group => 'mysql',
                recurse => true,
        }

        service { "mysqld":
                name => $operatingsystem ? {
                        CentOS => "mysqld",
                },
                enable => true,
                ensure => running,
                alias => "MySQL Database",
                hasstatus => true,
                hasrestart => true,
                subscribe => File[ "/etc/my.cnf" ],
                require => [
                        User["mysql"],
                        Group["mysql"],
                        Package["mysql-server"]
                ]
        }

        if tagged('database-slave') {
                file { "/mysql_tmp":
                        ensure => directory,
                        mode => '0777',
                        owner => 'mysql',
                        group => 'mysql',
                        before => Mount["/mysql_tmp"],
                }
                mount { "/mysql_tmp":
                        device => "tmpfs",
                        fstype => "tmpfs",
                        ensure => "mounted",
                        atboot => "true",
                        options => "size=2G,nr_inodes=20k,mode=0777",
                }

                file { "/etc/my.cnf":
                        ensure => present,
                        content => template("database/etc/slave-my.cnf")
                }
        } else {

                file { "/etc/my.cnf":
                        ensure => present,
                        content => template("database/etc/master-my.cnf")
                }

        }

}