summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Filion <gabster@lelutin.ca>2014-03-12 11:43:31 -0400
committerGabriel Filion <gabster@lelutin.ca>2014-03-12 11:43:31 -0400
commit84fba22bad4d2d0e88352c999cabe4de2a42c023 (patch)
tree3c53c966002a9243d1ea4e290fce44a72c95e1f6
parent8fbc1b33eea6d45d9b6ff4de0faf937394c415ca (diff)
parenta5754aa8025d75fd1bb55e210ec90ede7b563c10 (diff)
Merge branch 'randomize_optimize'
-rw-r--r--README10
-rw-r--r--manifests/server.pp3
-rw-r--r--manifests/server/base.pp6
-rw-r--r--manifests/server/cron/optimize.pp12
4 files changed, 26 insertions, 5 deletions
diff --git a/README b/README
index a454dbd..1b12c76 100644
--- a/README
+++ b/README
@@ -61,6 +61,16 @@ Optimizing tables
If you wish mysql to periodically optimize tables, set the
"$mysql_optimize_cron = true" variable before you include mysql::server.
+By default, time of execution for the optimization script will be randomly
+chosen (and will stay consistant for a server) any day between midnight and
+7:00 AM. If you wish to force at least one value, you can use the following
+parameters to the mysql::server class (all values are used directly as a
+cronjob value so they should be set within cron value space):
+
+* optimize_day => sets the day of the week (integer value) during which the script will run.
+* optimize_hour => sets the hour at which the optimization script will run.
+* optimize_minute => sets the minute in the hour at which the script will run.
+
Munin
-----
diff --git a/manifests/server.pp b/manifests/server.pp
index bf2e95c..5a34b1c 100644
--- a/manifests/server.pp
+++ b/manifests/server.pp
@@ -8,6 +8,9 @@ class mysql::server (
$nagios_password_hash = 'absent',
$backup_cron = false,
$optimize_cron = false,
+ $optimize_hour = fqdn_rand(7),
+ $optimize_minute = fqdn_rand(60),
+ $optimize_day = fqdn_rand(7),
$backup_dir = '/var/backups/mysql',
$manage_backup_dir = true,
$nagios_notcp = false
diff --git a/manifests/server/base.pp b/manifests/server/base.pp
index 14f3c1b..b379f5c 100644
--- a/manifests/server/base.pp
+++ b/manifests/server/base.pp
@@ -70,7 +70,11 @@ class mysql::server::base {
}
if $mysql::server::optimize_cron {
- include mysql::server::cron::optimize
+ class { 'mysql::server::cron::optimize':
+ optimize_hour => $mysql::server::optimize_hour,
+ optimize_minute => $mysql::server::optimize_minute,
+ optimize_day => $mysql::server::optimize_day,
+ }
}
service { 'mysql':
diff --git a/manifests/server/cron/optimize.pp b/manifests/server/cron/optimize.pp
index d1d0257..5d4fa98 100644
--- a/manifests/server/cron/optimize.pp
+++ b/manifests/server/cron/optimize.pp
@@ -1,5 +1,9 @@
# optimize mysql databases regurarely
-class mysql::server::cron::optimize {
+class mysql::server::cron::optimize (
+ $optimize_hour,
+ $optimize_minute,
+ $optimize_day
+) {
file { 'mysql_optimize_script':
path => '/usr/local/sbin/optimize_mysql_tables.rb',
@@ -12,9 +16,9 @@ class mysql::server::cron::optimize {
cron { 'mysql_optimize_cron':
command => '/usr/local/sbin/optimize_mysql_tables.rb',
user => 'root',
- minute => 40,
- hour => 6,
- weekday => 7,
+ minute => $optimize_minute,
+ hour => $optimize_hour,
+ weekday => $optimize_day,
require => [ Exec['mysql_set_rootpw'],
File['mysql_root_cnf'],
File['mysql_optimize_script'] ],