No description
Find a file
Nan Liu 33c72efde1 Add travis.ci for testing multiple puppet versions.
The existing spec tests should be tested on multiple puppet version. The
addition of travis.ci allows us to easily verify all specs are passing
and new manifests did not break backwards compatibility by introducing
new syntax.
2012-03-18 01:35:12 -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 Fix mysql service on Ubuntu. 2012-03-16 18:15:12 -05:00
spec Merge pull request #51 from nanliu/tb/spec 2012-03-17 12:13:14 -07: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
.travis.yml Add travis.ci for testing multiple puppet versions. 2012-03-18 01:35:12 -05:00
CHANGELOG Release 0.0.1 2011-06-03 13:38:29 -07:00
Gemfile Add travis.ci for testing multiple puppet versions. 2012-03-18 01:35:12 -05: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'],
}