Report abuse

Node Definition

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

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

# 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"];
    }