phpservermon/puphpet/puppet/nodes/Mysql.pp

111 lines
3.6 KiB
Puppet

if $mysql_values == undef { $mysql_values = hiera_hash('mysql', false) }
if $php_values == undef { $php_values = hiera_hash('php', false) }
if $apache_values == undef { $apache_values = hiera_hash('apache', false) }
if $nginx_values == undef { $nginx_values = hiera_hash('nginx', false) }
include puphpet::params
if hash_key_equals($mysql_values, 'install', 1) {
include mysql::params
if hash_key_equals($apache_values, 'install', 1)
or hash_key_equals($nginx_values, 'install', 1)
{
$mysql_webserver_restart = true
} else {
$mysql_webserver_restart = false
}
if $::osfamily == 'redhat' {
$rhel_mysql = 'http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm'
exec { 'mysql-community-repo':
command => "yum -y --nogpgcheck install '${rhel_mysql}' && touch /.puphpet-stuff/mysql-community-release",
creates => '/.puphpet-stuff/mysql-community-release'
}
$mysql_server_require = Exec['mysql-community-repo']
$mysql_server_server_package_name = 'mysql-community-server'
$mysql_server_client_package_name = 'mysql-community-client'
} else {
$mysql_server_require = []
$mysql_server_server_package_name = $mysql::params::server_package_name
$mysql_server_client_package_name = $mysql::params::client_package_name
}
if hash_key_equals($php_values, 'install', 1) {
$mysql_php_installed = true
$mysql_php_package = 'php'
} elsif hash_key_equals($hhvm_values, 'install', 1) {
$mysql_php_installed = true
$mysql_php_package = 'hhvm'
} else {
$mysql_php_installed = false
}
if $mysql_values['root_password'] {
$mysql_override_options = empty($mysql_values['override_options']) ? {
true => {},
default => $mysql_values['override_options']
}
class { 'mysql::server':
package_name => $mysql_server_server_package_name,
root_password => $mysql_values['root_password'],
require => $mysql_server_require,
override_options => $mysql_override_options
}
class { 'mysql::client':
package_name => $mysql_server_client_package_name,
require => $mysql_server_require
}
if count($mysql_values['databases']) > 0 {
each( $mysql_values['databases'] ) |$key, $database| {
$database_merged = delete(merge($database, {
'dbname' => $database['name'],
}), 'name')
create_resources( puphpet::mysql::db, {
"${key}" => $database_merged
})
}
}
if $mysql_php_installed and $mysql_php_package == 'php' {
if $::osfamily == 'redhat' and $php_values['version'] == '53' {
$mysql_php_module = 'mysql'
} elsif $::lsbdistcodename == 'lucid' or $::lsbdistcodename == 'squeeze' {
$mysql_php_module = 'mysql'
} else {
$mysql_php_module = 'mysqlnd'
}
if ! defined(Puphpet::Php::Module[$mysql_php_module]) {
puphpet::php::module { $mysql_php_module:
service_autorestart => $mysql_webserver_restart,
}
}
}
}
if hash_key_equals($mysql_values, 'adminer', 1)
and $mysql_php_installed
and ! defined(Class['puphpet::adminer'])
{
if hash_key_equals($apache_values, 'install', 1) {
$mysql_adminer_webroot_location = '/var/www/default'
} elsif hash_key_equals($nginx_values, 'install', 1) {
$mysql_adminer_webroot_location = $puphpet::params::nginx_webroot_location
} else {
$mysql_adminer_webroot_location = '/var/www/default'
}
class { 'puphpet::adminer':
location => "${mysql_adminer_webroot_location}/adminer",
owner => 'www-data',
php_package => $mysql_php_package
}
}
}