102 lines
3.7 KiB
Text
102 lines
3.7 KiB
Text
|
Introduction/Notes
|
||
|
==================
|
||
|
|
||
|
This module manages your mysql resources.
|
||
|
|
||
|
Requirements
|
||
|
------------
|
||
|
|
||
|
If you are wanting munin integration, you will need the munin module installed.
|
||
|
|
||
|
If you are wanting shorewall integration, you will need the shorewall module
|
||
|
installed.
|
||
|
|
||
|
If you are wanting nagios integration, you will need the nagios module
|
||
|
installed, specifically it must have nagios::plugin::deploy functionality.
|
||
|
|
||
|
You will need to have activated storedconfigs on the puppetmaster.
|
||
|
|
||
|
Mysql Server
|
||
|
============
|
||
|
|
||
|
On a node where you wish to have a mysql server installed, you should first
|
||
|
define the mysql root password and then include mysql::server, for example:
|
||
|
|
||
|
node foo {
|
||
|
$mysql_rootpw = "b00changem3"
|
||
|
include mysql::server
|
||
|
}
|
||
|
|
||
|
This will manage the necessary directories and configuration files, it will
|
||
|
install the mysql client program and set the root password as you designated,
|
||
|
along with setting a /root/.my.cnf for various module operations. It will also
|
||
|
make sure the mysql service is running, and setup all the databases, users and
|
||
|
grant tables.
|
||
|
|
||
|
The my.cnf file will installed from one of many possible places, see
|
||
|
manifests/server/base.pp for possible locations for managing this.
|
||
|
|
||
|
Backups
|
||
|
-------
|
||
|
|
||
|
If you wish to automatically setup a cronjob to backup your databases, you can
|
||
|
set the "$mysql_backup_cron = true" variable. This will setup a cronjob to do a
|
||
|
mysqldump at 1am of all the databases on the system and put them in
|
||
|
/var/backups/mysql by default. You can override this location by specifying
|
||
|
$mysql_backup_dir.
|
||
|
|
||
|
Optimizing tables
|
||
|
-----------------
|
||
|
|
||
|
If you wish mysql to periodically optimize tables, set the
|
||
|
"$mysql_optimize_cron = true" variable before you include mysql::server.
|
||
|
|
||
|
Munin
|
||
|
-----
|
||
|
|
||
|
If you wish to use munin you need to set the variables: $munin_mysql_password
|
||
|
and "$use_munin = true", before you include mysql::server. This will be used to
|
||
|
setup a mysql user for munin, with reduced privileges to allow for the various
|
||
|
munin graphs to be setup and queried. The munin graphs are: mysql_bytes,
|
||
|
mysql_queries, mysql_slowqueries and mysql_threads. NOTE: The
|
||
|
$munin_mysql_password is not necessary on Debian systems as it will handled with
|
||
|
Debian's /etc/mysql/debian.cnf.
|
||
|
|
||
|
Nagios
|
||
|
------
|
||
|
|
||
|
If you wish nagios to check mysql, you should set the variable "$use_nagios =
|
||
|
true" along with the "$nagios_check_mysql = true" variable. You will also need
|
||
|
to set a password for the nagios mysql user which will be automatically created
|
||
|
for you with reduced privileges used only for nagios checks. You can do that by
|
||
|
setting the variable: $nagios_mysql_password = "f00changem3". These should be
|
||
|
set before you include mysql::server.
|
||
|
|
||
|
Unless you specify otherwise, the default nagios check which will be performed
|
||
|
is the basic 'check_mysql' nagios plugin which simply tests connectivity to a
|
||
|
MySQL server. You can specify more advanced mysql health checks as follows:
|
||
|
|
||
|
mysql::server::nagios::check_health { [ 'connection-time', 'uptime', 'threads-connected',
|
||
|
'slave-lag', 'slave-io-running', 'slave-sql-running' ]: }
|
||
|
|
||
|
See the files/nagios/check_mysql_health script for the various mysql health
|
||
|
checks that you can perform. Additionally, see the define "check_health" in
|
||
|
manifests/server/nagios.pp for various options that you can pass to check_health.
|
||
|
|
||
|
Firewall
|
||
|
--------
|
||
|
|
||
|
If you wish to have firewall rules setup automatically for you, using shorewall,
|
||
|
you will need to set: $use_shorewall = true. See the shorewall module for more
|
||
|
information about how this works.
|
||
|
|
||
|
|
||
|
Client
|
||
|
======
|
||
|
|
||
|
On a node where you wish to have the mysql client managed, you can 'include
|
||
|
mysql::client' in the node definition. This will install the appropriate
|
||
|
package.
|
||
|
|
||
|
You can also 'include mysql::client::ruby' if you want the 'libmysql-ruby'
|
||
|
libraries installed.
|