Mercurial > repos > other > Puppet
view modules/mysql/manifests/server/config.pp @ 478:adf6fe9bbc17
Update Puppet modules to latest versions
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Thu, 29 Aug 2024 18:47:29 +0100 |
parents | c6c9a2cfcfbd |
children |
line wrap: on
line source
# @summary # Private class for MySQL server configuration. # # @api private # class mysql::server::config { $options = $mysql::server::_options $includedir = $mysql::server::includedir $managed_dirs = $mysql::server::managed_dirs File { owner => 'root', group => $mysql::server::root_group, mode => '0400', } if $includedir and $includedir != '' { file { $includedir: ensure => directory, mode => '0755', recurse => $mysql::server::purge_conf_dir, purge => $mysql::server::purge_conf_dir, } # on some systems this is /etc/my.cnf.d, while Debian has /etc/mysql/conf.d and FreeBSD something in /usr/local. For the latter systems, # managing this basedir is also required, to have it available before the package is installed. $includeparentdir = dirname($includedir) if $includeparentdir != '/' and $includeparentdir != '/etc' { file { $includeparentdir: ensure => directory, mode => '0755', } } } #Debian: Creating world readable directories before installing. case $facts['os']['family'] { 'Debian': { if $managed_dirs { $managed_dirs.each | $entry | { $dir = $options['mysqld']["${entry}"] if ( $dir and $dir != '/usr' and $dir != '/tmp' ) { $clean_dir = stdlib::shell_escape($dir) $clean_package_name = stdlib::shell_escape($mysql::server::package_name) exec { "${entry}-managed_dir-mkdir": command => ['/bin/mkdir', '-p', $clean_dir], unless => [['/usr/bin/dpkg', '-s', $clean_package_name]], notify => Exec["${entry}-managed_dir-chmod"], } exec { "${entry}-managed_dir-chmod": command => ['/bin/chmod', '777', $clean_dir], refreshonly => true, } } } } } default: {} } $parameters= { 'options' => $options, 'includedir' => $includedir, } if $mysql::server::manage_config_file { file { 'mysql-config-file': path => $mysql::server::config_file, content => epp('mysql/my.cnf.epp', $parameters), mode => $mysql::server::config_file_mode, owner => $mysql::server::mycnf_owner, group => $mysql::server::mycnf_group, selinux_ignore_defaults => true, } # on mariadb systems, $includedir is not defined, but /etc/my.cnf.d has # to be managed to place the server.cnf there $configparentdir = dirname($mysql::server::config_file) # Before setting $configparentdir we first check to make sure that it's value is valid if $configparentdir != '/' and $configparentdir != '/etc' { # We then check that the value of $includedir is either undefined or that different from $configparentdir # We first check that it is undefined due to dirname throwing an error when given undef/empty strings if $includedir == undef or $includedir == '' or ($configparentdir != $includedir and $configparentdir != dirname($includedir)) { file { $configparentdir: ensure => directory, mode => '0755', } } } } }