--- /dev/null
+#!/bin/bash
+#
+# Set MySQL password.
+#
+
+CONF="/root/.my.cnf"
+
+# Check config file
+if [ ! -e "$CONF" ]; then
+ echo "File not found: $CONF"
+ exit 1
+fi
+
+# Get password from configuration
+passwd="`grep ^'password='` $CONF | cut -d '=' -f 2"
+
+# Set the password
+echo "USE mysql; UPDATE user SET Password=PASSWORD('$passwd') WHERE User='root' AND Host='localhost';" | /usr/bin/mysql -u root
# 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":
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,
+ }
+ }
}