No description
Find a file
Nan Liu 72da2c5838 Fix mysql service on Ubuntu.
On Ubuntu, mysql should use upstart provider instead of init.d. This
change overrides the init provider until the issue with init provider
can be addressed.
2012-03-16 18:15: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 Fix mysql service on Ubuntu. 2012-03-16 18:15:12 -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'],
}