diff options
author | Gabriel Filion <gabster@lelutin.ca> | 2014-03-12 16:26:32 -0400 |
---|---|---|
committer | Gabriel Filion <gabster@lelutin.ca> | 2014-03-12 16:26:32 -0400 |
commit | 102de3b0e7c6e2f1ace419e028ed1c3920735d42 (patch) | |
tree | d9c47802173c796013d08c7577edd8abd954bed0 | |
parent | 84fba22bad4d2d0e88352c999cabe4de2a42c023 (diff) | |
parent | b06570a940a705988360553446daa8ea52e60f27 (diff) |
Merge branch 'conf_define'
-rw-r--r-- | README | 30 | ||||
-rw-r--r-- | manifests/conf.pp | 37 | ||||
-rw-r--r-- | manifests/server/base.pp | 8 | ||||
-rw-r--r-- | templates/conf.erb | 9 |
4 files changed, 84 insertions, 0 deletions
@@ -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 ------- diff --git a/manifests/conf.pp b/manifests/conf.pp new file mode 100644 index 0000000..f9cbeb3 --- /dev/null +++ b/manifests/conf.pp @@ -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'], + } + +} diff --git a/manifests/server/base.pp b/manifests/server/base.pp index b379f5c..7bbf30d 100644 --- a/manifests/server/base.pp +++ b/manifests/server/base.pp @@ -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', + } + } diff --git a/templates/conf.erb b/templates/conf.erb new file mode 100644 index 0000000..c7e332a --- /dev/null +++ b/templates/conf.erb @@ -0,0 +1,9 @@ +# THIS FILE IS MANAGED BY PUPPET +[<%= @section -%>] +<% @config.each do |key, value| -%> +<% if value != '' -%> +<%= key -%> = <%= value %> +<% else -%> +<%= key %> +<% end -%> +<% end %> |