Merge branch 'conf_define'

This commit is contained in:
Gabriel Filion 2014-03-12 16:26:32 -04:00
commit 102de3b0e7
4 changed files with 84 additions and 0 deletions

30
README
View file

@ -46,6 +46,36 @@ 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.
Configuration snippets
----------------------
To make managing mysql configuration easier, you can use the define
mysql::conf. Note, though that there currently is only the Debian default
configuration file that includes files in /etc/mysql/conf.d/.
For example:
mysql::conf { 'test':
ensure => present,
section => 'mysqld',
config => {
table_cache => '15000',
skip_slave => '',
something => '""',
}
}
The above example shows two possibilities for empty values.
* If a value only has an empty value in the hash passed to the config
parameter, that will define a boolean option in mysql by simply mentioning
the option name with no equal sign. So in the above, you'd have a line that
contains only "skip_slave".
* If you need to declare a variable with an empty value (e.g. with the equal
sign), you can use two quotes as the option's value. In the above example,
you'd have a line that looks like "something=".
Backups
-------

37
manifests/conf.pp Normal file
View file

@ -0,0 +1,37 @@
# $config needs to be a hash of key => value pairs.
#
# values in config are output as key = value, except when the value is empty;
# then just key is output. if you need to output an empty value in the form
# key = value, then you can specify empty quotes as the value (see example).
#
# mysql::conf { 'test':
# ensure => present,
# section => 'mysqld',
# config => {
# table_cache => '15000',
# skip_slave => '',
# something => '""',
# }
# }
#
# This will generate the following contents:
# [mysqld]
# skip_slave
# something = ""
# table_cache = 15000
#
define mysql::conf (
$section,
$config,
$ensure = present
) {
include mysql::server::base
file { "/etc/mysql/conf.d/${name}.cnf":
ensure => $ensure,
content => template('mysql/conf.erb'),
notify => Service['mysql'],
}
}

View file

@ -92,4 +92,12 @@ class mysql::server::base {
Mysql_user<<| tag == "mysql_${::fqdn}" |>>
Mysql_grant<<| tag == "mysql_${::fqdn}" |>>
}
file { '/etc/mysql/conf.d':
ensure => directory,
owner => 'root',
group => 0,
mode => '0755',
}
}

9
templates/conf.erb Normal file
View file

@ -0,0 +1,9 @@
# THIS FILE IS MANAGED BY PUPPET
[<%= @section -%>]
<% @config.each do |key, value| -%>
<% if value != '' -%>
<%= key -%> = <%= value %>
<% else -%>
<%= key %>
<% end -%>
<% end %>