Commit graph

277 commits

Author SHA1 Message Date
Ashley Penney
c2d02ff721 Make sure we notify the service. 2014-07-08 13:24:23 -04:00
Ashley Penney
5959715ff6 Rework the mysql initdb functionality.
This reworks a previously unmerged PR to clean up the code a little and
adds a test for it.
2014-07-08 12:53:20 -04:00
Reinhard Vicinus
6f5488827a run mysql_install_db if datadir is set annd mysql database is missing 2014-07-08 10:26:18 -04:00
Jaakko
16002dfe09 Fix acceptance test for mysql::bindings.
Fix acceptance test for bindings to use correct parameter names, when
instantiating mysql::bindings class. Fix client and server dev package names
for couple of distros.
2014-06-11 18:01:16 +02:00
Jaakko
96a64a9793 (MODULES-1096) Fix double quote / single quote issue in params.pp.
To follow style guide advice
(http://docs.puppetlabs.com/guides/style_guide.html#quoting) and make
puppet-lint happy, manifests should only use double quotes with strings that
contain variables.

This commit fixes the lone exception to this rule.
2014-06-06 11:48:56 +02:00
David Miller
18df1d08e5 fix param client_package_ensure 2014-06-04 10:45:46 -04:00
Lukas Bezdicka
26204437ef Prametrize !includedir
Hardcoded path provided by puppet is now replaced by providing only the final directory as on
most systems includedir is provided by package and it's matter of user to provide it if he
wants to override it. This also allows disabling including at all.
2014-06-04 14:07:49 +02:00
Aaron Hicks
b2090194f5 Install MySQL client and daemon dev libraries. 2014-05-19 09:41:25 +12:00
Morgan Haskel
6151590caf Change the package name in the manifest, too! 2014-05-09 16:46:03 -04:00
Morgan Haskel
dec2af67b8 MariaDB still uses my.cnf as the main config file. 2014-05-09 15:10:27 -04:00
nerdlich
b40865d740 Backup user needs PROCESS privilege when doing file-per-database backups
The following error occured:
mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM `INNODB_BUFFER_PAGE`': Access denied; you need (at least one of) the PROCESS privilege(s) for this operation (1227)
2014-04-22 13:08:58 +02:00
Ashley Penney
71d1f24bd9 Merge pull request #457 from igalic/independent-backup
mysqlbackup.sh should be able to find mysql
2014-04-10 13:46:19 -04:00
Martin Magr
c47d1fb586 Modified params.pp to work on latest Red Hat releases
On Fedora-20+ and RHEL-7+ mysqld service does not work any more
and has been replaced by mariadb service. This patch changes all
parameters accordingly.
2014-03-18 17:34:54 +01:00
Pan
df706eec5e Use ensure_resource for mysql_databasein mysql::db
This will allow exported resource mysql::db to define same database but different
hostname and enables the cluster web nodes to declear the mysql::db and
to be collected on db node.
2014-03-15 13:38:17 -07:00
Pan
2834498e4d Allow use different name for db resource other than db name
When defining the mysql::db as exported resources, there are chances that the
same resource names are defined across the site, which will cause puppet agent
fail. By adding an optional dbname parameter, default to the $name, it allows the
resouce name to be defined differently, e.g. ${dbname}_${domain}.
Also updated test and docs for dbname parameter and add acceptance test for
dbname parameter feature
2014-03-15 13:38:13 -07:00
Robin Gloster
47521aea8e add message to warn if disabling ssl 2014-03-04 14:58:17 +01:00
Robin Gloster
abcea00dcb handle mysql compiled without ssl
mysql doesn't allow ssl=true/false in my.cnf if it hasn't been compiled
with ssl, therefor add a new parameter ssl-disable which makes sure the
template doesn't write anything with ssl to the config.
2014-02-28 21:42:41 +01:00
Ashley Penney
2d1a9f981a This fixes:
* Bindings on SLES
* Makes sure we don't kill the service while testing conf file locations.
2014-02-26 14:54:54 +00:00
Igor Galić
d2b24e40d3 mysqlbackup.sh should be able to find mysql
anywhere. This should enable use to use mysql::server::backup
idependantly, even if mysql is preinstalled, and preinstalled in non
standard locations
2014-02-20 17:17:41 +01:00
Igor Galić
63e0da0b71 option to specify a script that runs after backups
This script could be used to sync backups to a central server, or just
to create a file to let external scripts know that backups are
(sucessfully) done and can be picked up.

The postscript option (defaults to false) and can be either a string or
an array of strings. These strings will be directly put into the
mysqlbackup.sh and as such can either be shell commands, or externally
managed files.
2014-02-06 16:44:07 +01:00
John Bond
10f346eaca Add logic to ignore mysql.events 2014-01-30 12:31:21 +01:00
Jim Radford
dabb29dd6e Actually use upstart on Ubuntu by fixing misspelled variable name 2014-01-23 13:01:08 -08:00
Ashley Penney
edfaeccfa8 Merge pull request #394 from danielfoglio/master
changed log_error to log-error and pid_file to pid-file to match the mys...
2013-12-19 16:39:56 -08:00
Igor Galić
d5fd46de59 Merge pull request #400 from duritong/fix_backupuser_dependency
Fix backupuser dependency
2013-12-18 22:13:27 -08:00
Ashley Penney
c32ae645e0 Apparently we were restarting no matter what the parameter said,
awkward.
2013-12-18 15:12:04 -05:00
Ashley Penney
5bba2e04b3 Add a comment to make this clearer. 2013-12-18 14:13:00 -05:00
Ashley Penney
b7dcdd1714 Add $restart support.
Previously this parameter did nothing, lets make it actually work.
2013-12-18 13:59:56 -05:00
mh
765afe4f61 Fix #321 - root_user should be setup before configuring backup user
Otherwise puppet might try to setup the backup user even before
the service is running and will fail.
2013-12-18 13:35:20 +01:00
Foglio, Daniel
3d98b1de0d changed log_error to log-error and pid_file to pid-file to match the mysqld service script 2013-12-17 17:39:04 -05:00
Guillaume Virlet
3da12ac622 migrate key_buffer (deprecated) to key_buffer_size in config_file 2013-12-14 23:15:13 +01:00
Guillaume Virlet
9460db2ec1 fix typo on bind-address in config_file 2013-12-14 23:14:01 +01:00
Evan Heidtmann
c654fe1ba8 Parameterize backup directory mode and ownership 2013-11-15 20:55:21 -08:00
Mason Malone
b86de6b88e Comment mysql::server::providers and update README.md
I added a "$" to the parameter examples because the Github syntax highlighting
looks off without it.
2013-11-11 09:57:31 -05:00
Mason Malone
d66efd82a2 Better hiera integration
This adds hash parameters to mysql::server to allow specifying grants, users, and databases to
create automatically, which works nicely with Hiera's automatic parameter lookup functionality
2013-11-10 22:25:55 -05:00
Ashley Penney
52b8714081 Fix owner -> user typo. 2013-11-06 11:36:55 -05:00
Igor Galić
333be5fd76 ensure /root/.my.cnf is 0600 and root owned
explicitly set /root/.my.cnf's owner and mode to ensure it will be
created with as root owned and 0600. This change fixes #357
2013-11-05 19:56:27 +01:00
Ashley Penney
a4d329f846 Fix the broken anchoring. 2013-11-05 16:41:41 +01:00
Jonathan Machado
62ef6564d7 Update the Anchor pattern workaround
Add a step to the anchor pattern and add comment to clarify the need of this workaround.
Ref : http://docs.puppetlabs.com/puppet/2.7/reference/lang_containment.html#known-issues
2013-10-31 13:16:32 +09:00
Jonathan Machado
e7c26a1c57 Add Anchor pattern to client.pp
The class mysql::client::install is "contained" in the mysql::client to avoid floating.
2013-10-29 19:24:04 +09:00
Ashley Penney
91b068cad4 Fix description for PE3.1
In PE3.1 it parses the comment #Deprecated at the top of the parameters
as if it's the class description.  Move this so PE3.1 doesn't falsely
claim mysql::server is now deprecated.
2013-10-16 11:42:35 -04:00
Ashley Penney
5d17f10f93 Port of a6101dc (mysql::server::monitor fix) to 2.x. 2013-10-07 09:55:13 -04:00
Ashley Penney
52a9f2e293 Duplicate parameter removed. 2013-10-03 19:10:35 -04:00
Ashley Penney
c0b35a2cf7 Add all the params here as undef to make it clear what the intent is. 2013-10-03 17:15:24 -04:00
Ashley Penney
dec3e1f7f1 Fix typoed parameter. 2013-09-30 13:04:15 -04:00
Ashley Penney
17597bf261 Merge pull request #282 from mediatemple/fix/master/merge_function
Fixes issue #274 by using recursive hash merge.
2013-09-26 06:57:16 -07:00
Ashley Penney
1719424b23 Fix mysql::client.
This was still relying on globals.  Allow you to pass params into
mysql::client properly to set the package.
2013-09-26 09:30:44 -04:00
Justin Burnham
1b4a486bf9 Fixes issue #274 by using recursive hash merge. 2013-09-25 10:38:08 -07:00
Ashley Penney
e0c4434815 Merge pull request #280 from apenney/fix-php
Removing the bindings compat stuff.
2013-09-25 10:07:27 -07:00
Ashley Penney
b8261abbdf Removing the bindings compat stuff. 2013-09-25 12:48:14 -04:00
Ashley Penney
46fe1ea512 Remove mysql::globals.
This turned out to be a fairly bad idea.  It begun as a way to try
and mirror what happens in the postgresql module for consistency
but instead made things complex.

I've changed it to have the override_options in mysql::server which
leads much more naturally out of the design and shape of MySQL.
2013-09-24 18:04:29 -04:00
David Collom
0614fba911 Update mysqltuner.pp
Enable present/absence.. in those cases when you only want mysqltuner installed for debugging
2013-09-24 14:43:11 +01:00
Ashley Penney
9d0f9010c6 Merge pull request #241 from red-trela/support-fedora-rawhide
Support Fedora's rolling development "release", Rawhide
2013-09-23 14:09:16 -07:00
Ashley Penney
4d6962e868 Various adjustments to classes to align with refactored work.
Handful of changes here, such as removing flush (so that mysql_user
can be used for root password changes) and other tweaks here.

Add time option to mysql::backup.
2013-09-13 13:14:48 -04:00
Ashley Penney
3f9297e10e Rework the mysql::bindings to be less complex.
This removes all the internal class parameters and shrinks these classes
to be more straightforward, relying on the values set in bindings.pp.
2013-09-13 13:14:39 -04:00
Ashley Penney
2c902b0f93 Add all the distribution specific params and other defaults not related
to the hash used in mysql::globals.
2013-09-13 13:09:48 -04:00
Ashley Penney
b930438d9a Deprecate this class while attempting to provide backwards
compatibility.
2013-09-13 13:09:05 -04:00
Ashley Penney
e4d5671e7f Add mysql::globals and refactor mysql::server.
This work adds a new mysql::globals class which contains a hash used to
build my.cnf from.  It's used to share this data across multiple classes
so that the client and server can share this data.

End users can modify content in my.cnf by including mysql::globals and
passing in override_options as a hash that looks like:

override_options = { 'mysqld' => { 'max_connections' => '120' } }

This completely replaces the mess of parameters that existed in the main
mysql class before.

Completely refactor mysql::server and rework the API.  This changes
ordering, changes from execs{} to mysql_user for the root password,
removes some functionality (like the etc_root_password), and generally
makes some tough decisions about how mysql::server should be built.
2013-09-13 13:04:42 -04:00
Ashley Penney
e3843ceb6f Refactor to use mysql::globals.
This initial round of work focuses on adding the concept of
mysql::globals to the module.  This is a shared place to provide all the
data the module needs, and then clients, servers, and providers can all
rely on this information to set things up.

This is being primarily used at first to allow a default_options hash
that contains all the previous parameters and takes a overrides_options
that allows you to then further customize any of the options in my.cnf.
2013-09-09 11:34:39 -04:00
Ashley Penney
2abccab4d9 Refactor and rename database_grant to mysql_grant.
This provider has undergone the largest set of changes and currently
just accepts a full SQL grant string as the name and then applies it,
making things easier for DBAs and removes the awkward attempts at
modelling grants into Puppet.
2013-09-03 17:24:21 -04:00
Ashley Penney
369c83126b Use new provider names in manifests.
Modify manifests and tests to handle the renamed providers.
2013-08-28 18:11:21 -04:00
Trey Dockendorf
627699fc49 Add option to mysql::backup to set the backup script to perform a mysqldump on each database to its own file 2013-08-27 15:15:29 -05:00
Ashley Penney
40db3e801d Merge pull request #244 from willametteuniversity/master
Added support to back up specified databases only with 'mysqlbackup'
2013-08-27 09:26:25 -07:00
Casey Feskens
ad479e6a81 Changed backupdatabases default from false to [] 2013-08-15 06:04:14 -07:00
Mark Phillips
ae367272a2 Add HOME environment variable for .my.cnf to mysqladmin command when (re)setting root password 2013-08-14 15:48:56 -04:00
Casey Feskens
359d88175c Added support to back up specified databases only with 'mysqlbackup'
parameter.  Each database is backed up separately to a named file.
2013-08-13 14:44:41 -07:00
Hunter Haugen
82c4b81ba3 Add environment variable for .my.cnf and specs 2013-08-13 13:08:39 -07:00
Sandro Mathys
070daf86b4 Support Fedora's rolling development "release", Rawhide
Since Rawhide is a rolling kind of release with no version numbers,
the operatingsystemrelease will actually return "Rawhide" instead
of any Integer. So we better check whether operatingsystemrelease
is an Integer before comparing numbers and cover Rawhide, too.
2013-08-11 18:25:33 +02:00
Ashley Penney
c22e72a97a Add compatibility classes to handle the backwards incompatible changes. 2013-07-26 10:08:37 -04:00
Ewoud Kohl van Wijngaarden
b1ae1523a4 Fix puppet 2.6 compatibility 2013-07-25 14:57:23 +02:00
Ashley Penney
7c7195ba33 Refactor MySQL bindings and client packages.
The current MySQL module is hard to modify, test, and drop in
replacement components to.  This work starts out by refactoring
the bindings support in MySQL to a completely seperate bindings
class in order to reduce the amount of parameters in the main
class for a feature that is infrequently used.

In addition to this start the movement of client configuration
and packages to the mysql::client::* namespace.
2013-07-19 18:39:55 -04:00
Wolf Noble
fb1e37cf04 package is specifically named 'mysql_client' not in relation to the client package name parameter. 2013-07-13 19:32:50 -05:00
Wolf Noble
19637d2e84 include mysql_client package as a requirement for the db creation 2013-07-12 18:06:53 -05:00
Ashley Penney
4e6073de92 Fix a geninue potential issue, a non-quoted string. 2013-07-11 19:42:41 -04:00
Ashley Penney
926e94a4cb Merge pull request #170 from omalashenko/master
Harden mysqlbackup.sh script
2013-07-09 16:06:55 -07:00
Ashley Penney
9bc2eb67c7 Merge pull request #214 from paramite/roothome
Use $root_home for .my.cnf
2013-07-09 16:04:23 -07:00
Clemens Fuchslocher
2e82660446 Fixed PID file location for SLES 11 SP2. 2013-07-08 20:50:43 +02:00
Martin Magr
e3d74a65b0 Use $root_home for .my.cnf 2013-07-08 11:49:30 +02:00
Derek Higgins
48af8a727d Fix typo in fact name 2013-07-06 00:08:02 +01:00
Ashley Penney
2b91872407 Merge pull request #210 from red-trela/fedora-19-mariadb
Cover Fedora 19's move from mysql to mariadb packages
2013-07-05 09:56:59 -07:00
Sandro Mathys
3ca7d958df Cover Fedora 19's move from mysql to mariadb packages 2013-07-05 10:53:56 +02:00
Daniel De Marco
e12eb0e19f add ft_min_word_len and ft_max_word_len config options 2013-07-04 21:33:53 -04:00
Oleg Malashenko
d7460d4b02 backup: configurable cleanup sequence
$delete_before_dump controls whether old backups to be removed before
creating new one.
2013-07-05 11:27:29 +10:00
Oleg Malashenko
9e2540f4fc Harden mysqlbackup.sh script
* mysql::backup backuprotate parameter sets the number of backups to keep,
   default is 30.

 * Use bash in mysqlbackup.sh to get exit status of mysqldump when piped to
   bzip2. Unfortunately there is no easy portable way to do that.

 * Only delete old backups when current backup finished successfully.

 * Try hard not to delete files that we didn't create (i.e. README or other
   backups).
2013-07-05 11:27:29 +10:00
Lebedev Vadim
9d69afcae7 Merge branch 'master' of https://github.com/puppetlabs/puppetlabs-mysql
Conflicts:
	manifests/config.pp
	spec/classes/mysql_config_spec.rb
2013-07-02 22:11:19 +04:00
Ashley Penney
aa5d1f070b Merge pull request #198 from mhellmic/maxconnections
add a maximum connection parameter and set the default to 1000
2013-07-02 10:43:29 -07:00
Lebedev Vadim
6cef2e8af4 Merge branch 'master' of https://github.com/puppetlabs/puppetlabs-mysql 2013-07-02 21:42:49 +04:00
Ashley Penney
f3e5c89551 Merge pull request #187 from RsrchBoy/topic/perl
add mysql::perl helper class
2013-07-02 10:37:10 -07:00
Ashley Penney
1b5dc3ce68 Merge pull request #186 from apenney/rootpassword
(WIP) #20562: Minor fix for ordering
2013-07-02 10:36:31 -07:00
Lebedev Vadim
ead86b5a3f Merge branch 'master' of https://github.com/puppetlabs/puppetlabs-mysql
Conflicts:
	manifests/config.pp
2013-07-02 21:26:43 +04:00
Ashley Penney
d9ce083f20 Merge pull request #162 from frimik/19744
fixes #19744 - no restart on root/.my.cnf change
2013-07-02 09:56:10 -07:00
Simon Effenberg
7f7e886d71 handling of my.cnf config file is now optional
This adds a parameter (default value is like old behavior) so that the
my.cnf file isn't managed (created/updated) by the mysql module at all
which is necessary for our environment. We need to set all parameters by
ourself. If we don't set a parameter then the default from the mysqld
binary should be used instead of any default parameter the mysql module
provides us.
2013-07-02 10:01:21 +02:00
Martin Hellmich
880eaae3e8 changed the max_connections default to 151
this is the default according to the mysql manual.
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_connections
2013-06-28 11:21:58 +02:00
Martin Hellmich
3089d3a59b add a maximum connection parameter and set the default to 1000
Conflicts:
	manifests/config.pp
	templates/my.cnf.erb
2013-06-28 10:15:58 +02:00
Lebedev Vadim
a42d5bea53 Merge branch 'master' of https://github.com/puppetlabs/puppetlabs-mysql 2013-06-26 14:06:01 +04:00
Niek Beernink
9dc1b946de make tmpdir configurable 2013-06-25 15:06:07 -07:00
Lebedev Vadim
fad4f06cb2 * Fixing lint warnings 2013-06-17 18:04:55 +04:00
Chris Weyl
beeb261c5a Merge branch 'master' into topic/perl
Conflicts:
	manifests/init.pp
2013-05-27 15:23:55 -07:00
Ashley Penney
811ebc62c8 A very small fix for the case where the root password has been changed
by hand and then you change your mysql::server entry to match.  If you
also change any mysql::db entries at the same time this causes those to
be attempted before your /root/.my.cnf is updated.

I can't add rspec testing for this until https://github.com/rodjek/rspec-puppet/pull/106
is merged.
2013-05-25 21:33:29 -04:00
Lebedev Vadim
1a13580f49 Merge branch 'master' of https://github.com/puppetlabs/puppetlabs-mysql
Conflicts:
	manifests/config.pp
	manifests/params.pp
2013-05-21 20:40:50 +04:00
Lebedev Vadim
a171c52a89 * Puppet 2.6 fix 2013-05-21 01:21:38 +04:00