Added $manage_config parameter

This parameter allows choosing whether to manage ('yes') or not manage ('no')
mysql/mariadb configuration using Puppet. Note that setting this to 'no' may
break things (mysql::grant) unless you manually include mysql::config::rootopts.

Signed-off-by: Samuli Seppänen <samuli@openvpn.net>
Added basic support for InnoDB via mysql::config::innodb

To make use of InnoDB the mysql::config::innodb class has to be included
separately. This is done to prevent parameter explosion in the main mysql class.
Some of the code was merged from elsewhere and is (C) Samuli Seppänen.

Signed-off-by: Samuli Seppänen <samuli@openvpn.net>
Signed-off-by: Samuli Seppänen <samuli.seppanen@gmail.com>
Added Puppet headers to configuration file templates

Signed-off-by: Samuli Seppänen <samuli@openvpn.net>
Added support for configuring master-slave replication

This is achieved using a separate class, mysql::config::replication to prevent
parameter explosion in them main mysql class. This commit contains code that's
(C) Mikko Vilpponen.

Signed-off-by: Samuli Seppänen <samuli@openvpn.net>
Signed-off-by: Samuli Seppänen <samuli.seppanen@gmail.com>
Added note to mysql::config::replication about mysql replication users

Signed-off-by: Samuli Seppänen <samuli@openvpn.net>
Merged mysql::user into mysql::grant

The fact that mysql::user and mysql::grant were separated caused ordering issues
if both resources were defined simultaneously. As users were already created
using the GRANT statement, it made sense to just extend mysql::grant to include
password information. Note that when a mysql::grant has status = 'absent', then
that particular 'user'@'host' combination is dropped entirely. This is in
contrast to previous behavior where only the defined privileges were revoked.

Signed-off-by: Samuli Seppänen <samuli@openvpn.net>