# Using recipe from # from http://reductivelabs.com/trac/puppet/wiki/Recipes/MySQLStoredConfiguration # and snippets from git://git.puppet.immerda.ch/module-mysql.git class mysql { package { "mysql-client": ensure => installed, } } class mysql::server inherits mysql { package { "mysql-server": ensure => installed, } service { "mysql": ensure => running, enable => true, hasrestart => true, hasstatus => true, require => Package["mysql-server"], } case $mysql_rootpw { '': { fail("You need to define a mysql root password! Please set \$mysql_rootpw in your site.pp or host config") } } file{ '/usr/local/sbin/setmysqlpass.sh': source => "puppet://$server/modules/mysql/setmysqlpass.sh", require => Package[mysql-server], owner => root, group => 0, mode => 0500; } exec{'set_mysql_rootpw': command => "/usr/local/sbin/setmysqlpass.sh", unless => "mysqladmin -uroot status > /dev/null", require => [ File['/usr/local/sbin/setmysqlpass.sh'], Package[mysql-server] ], } mysql::cnf { "root": home => "/root", passwd => $mysql_rootpw, } define mysql::cnf($home, $passwd) { $mysql_passwd = $passwd file { "$home/.my.cnf": content => template('mysql/my.cnf.erb'), require => [ Package[mysql-server] ], owner => root, group => 0, mode => 0400, } } }