define database::config( $value, $order = 'zz', $section = '', $ensure = 'present' ) { # Guess section based on operating system and implementation $implementation = $::mysql::server::implementation $real_section = $section ? { '' => $implementation ? { 'mysql-server' => $::lsbdistid ? { 'Ubuntu' => $::lsbdistcodename ? { 'trusty' => 'conf.d', default => 'mysql.conf.d', }, 'Debian' => 'mariadb.conf.d', }, 'mariadb-server' => 'mariadb.conf.d', }, default => $section, } # Old file file { "/etc/mysql/${real_section}/${name}.cnf": ensure => absent, } # Old file if $real_section != 'conf.d' { file { "/etc/mysql/conf.d/${name}.cnf": ensure => absent, } } if !defined(File["/etc/mysql/${real_section}"]) { file { "/etc/mysql/${real_section}": ensure => directory, owner => root, group => root, mode => '0755', } } file { "/etc/mysql/${real_section}/${order}-${name}.cnf": ensure => $ensure, owner => root, group => root, mode => '0644', content => "[mysqld]\n${name} = ${value}\n", require => File["/etc/mysql/${real_section}"], notify => Service['mysql'], } }