No description
Find a file
Nan Liu eff79b5331 Fix spec test issues related to error message.
The current spec tests was testing for an error message duplicate
declaration instead of duplicate definition. This change was introduced
by puppet issue #11451, so we test for both errors instead.
2012-03-16 22:39:42 -05:00
files (#12412) mysqltuner.pl update 2012-02-04 07:08:08 +11:00
lib/puppet Fix bug when querying for all database users 2012-03-14 23:05:20 -07:00
manifests Merge pull request #46 from bodepd/add_rspec_tests_for_config_class 2012-03-16 11:25:28 -07:00
spec Fix spec test issues related to error message. 2012-03-16 22:39:42 -05:00
templates Major refactor of mysql module. 2012-03-13 15:19:53 -07:00
tests Major refactor of mysql module. 2012-03-13 15:19:53 -07:00
.gitignore ignore swap files 2011-05-26 17:59:01 -07:00
CHANGELOG Release 0.0.1 2011-06-03 13:38:29 -07:00
LICENSE Added documentation and license to module. 2011-05-31 20:47:19 -07:00
Modulefile Major refactor of mysql module. 2012-03-13 15:19:53 -07:00
Rakefile Major refactor of mysql module. 2012-03-13 15:19:53 -07:00
README.md Add documentation related to osfamily fact. 2012-03-15 01:11:11 -05:00
TODO added some additional TODOS 2011-06-03 13:27:44 -07:00

Mysql module for Puppet

This module manages mysql on Linux (RedHat/Debian) distros. A native mysql provider implements database resource type to handle database, database user, and database permission.

Description

This module uses the fact osfamily which is supported by Facter 1.6.1+. If you do not have facter 1.6.1 in your environment, the following manifests will provide the same functionality in site.pp (before declaring any node):

if ! $::osfamily {
  case $::operatingsystem {
    'RedHat', 'Fedora', 'CentOS', 'Scientific', 'SLC', 'Ascendos', 'CloudLinux', 'PSBM', 'OracleLinux', 'OVS', 'OEL': {
      $osfamily = 'RedHat'
    }
    'ubuntu', 'debian': {
      $osfamily = 'Debian'
    }
    'SLES', 'SLED', 'OpenSuSE', 'SuSE': {
      $osfamily = 'Suse'
    }
    'Solaris', 'Nexenta': {
      $osfamily = 'Solaris'
    }
    default: {
      $osfamily = $::operatingsystem
    }
  }
}

This module is based on work by David Schmitt. The following contributor have contributed patches to this module (beyond Puppet Labs):

  • Christian G. Warden
  • Daniel Black
  • Justin Ellison
  • Lowe Schmidt
  • Matthias Pigulla
  • William Van Hevelingen

Usage

mysql

Installs the mysql-client package.

class { 'mysql': }

mysql::python

Installs mysql bindings for python.

class { 'mysql::python': }

mysql::ruby

Installs mysql bindings for ruby.

class { 'mysql::ruby': }

mysql::server

Installs mysql-server packages, configures my.cnf and starts mysqld service:

class { 'mysql::server':
  config_hash => { 'root_password' => 'foo' }
}

Database login information stored in /root/.my.cnf.

mysql::db

Creates a database with a user and assign some privileges.

mysql::db { 'mydb':
  user     => 'myuser',
  password => 'mypass',
  host     => 'localhost',
  grant    => ['all'],
}

Providers for database types:

MySQL provider supports puppet resources command:

$ puppet resource database
database { 'information_schema':
  ensure  => 'present',
  charset => 'utf8',
}
database { 'mysql':
  ensure  => 'present',
  charset => 'latin1',
}

The custom resources can be used in any other manifests:

database { 'mydb':
  charset => 'latin1',
}

database_user { 'bob@localhost':
  password_hash => mysql_password('foo')
}

database_grant { 'user@localhost/database':
  privileges => ['all'] ,
}

A resource default can be specified to handle dependency:

Database {
  require => Class['mysql::server'],
}