From 828d52e667a99432d55ee36f52b3430ca699a3a6 Mon Sep 17 00:00:00 2001 From: mh Date: Sun, 9 Dec 2012 15:12:19 +0100 Subject: woraround a puppet provider bug --- manifests/server.pp | 7 ++-- manifests/server/base.pp | 103 +++++++++++++++++++++++++---------------------- 2 files changed, 59 insertions(+), 51 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index f08cd1a..bc49100 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -1,3 +1,4 @@ +# manage a mysql server class mysql::server ( $manage_shorewall = false, $manage_munin = false, @@ -15,16 +16,16 @@ class mysql::server ( default: { include mysql::server::base } } - if $manage_munin { + if $manage_munin and $::mysql_exists == 'true' { case $::operatingsystem { debian: { include mysql::server::munin::debian } default: { include mysql::server::munin::default } } } - if $manage_nagios { + if $manage_nagios and $::mysql_exists == 'true' { include mysql::server::nagios - } + } if $manage_shorewall { include shorewall::rules::mysql diff --git a/manifests/server/base.pp b/manifests/server/base.pp index de421b3..0709a54 100644 --- a/manifests/server/base.pp +++ b/manifests/server/base.pp @@ -1,59 +1,64 @@ +# manage the common things of +# a mysql server class mysql::server::base { - package { mysql-server: + package {'mysql-server': ensure => present, } file { 'mysql_main_cnf': - path => '/etc/mysql/my.cnf', - source => [ + path => '/etc/mysql/my.cnf', + source => [ "puppet:///modules/site_mysql/${::fqdn}/my.cnf", "puppet:///modules/site_mysql/my.cnf.${::operatingsystem}.{lsbdistcodename}", "puppet:///modules/site_mysql/my.cnf.${::operatingsystem}", - "puppet:///modules/site_mysql/my.cnf", + 'puppet:///modules/site_mysql/my.cnf', "puppet:///modules/mysql/config/my.cnf.${::operatingsystem}.{lsbdistcodename}", "puppet:///modules/mysql/config/my.cnf.${::operatingsystem}", - "puppet:///modules/mysql/config/my.cnf" + 'puppet:///modules/mysql/config/my.cnf' ], - ensure => file, require => Package['mysql-server'], - notify => Service['mysql'], - owner => root, group => 0, mode => 0644; + notify => Service['mysql'], + owner => root, + group => 0, + mode => '0644'; } - file { 'mysql_data_dir': - path => '/var/lib/mysql/data', - ensure => directory, - require => Package['mysql-server'], - before => File['mysql_main_cnf'], - owner => mysql, group => mysql, mode => 0755; - } - - file { 'mysql_ibdata1': - path => '/var/lib/mysql/data/ibdata1', - ensure => file, - require => Package['mysql-server'], - before => File['mysql_setmysqlpass.sh'], - owner => mysql, group => mysql, mode => 0660; - } - - file { 'mysql_setmysqlpass.sh': - path => '/usr/local/sbin/setmysqlpass.sh', - source => "puppet:///modules/mysql/scripts/${::operatingsystem}/setmysqlpass.sh", - require => Package['mysql-server'], - owner => root, group => 0, mode => 0500; - } - - file { 'mysql_root_cnf': - path => '/root/.my.cnf', - content => template('mysql/root/my.cnf.erb'), - require => [ Package['mysql-server'] ], - owner => root, group => 0, mode => 0400, - notify => Exec['mysql_set_rootpw'], + file { + 'mysql_data_dir': + ensure => directory, + path => '/var/lib/mysql/data', + require => Package['mysql-server'], + before => File['mysql_main_cnf'], + owner => mysql, + group => mysql, + mode => '0755'; + 'mysql_ibdata1': + path => '/var/lib/mysql/data/ibdata1', + require => Package['mysql-server'], + before => File['mysql_setmysqlpass.sh'], + owner => mysql, + group => mysql, + mode => '0660'; + 'mysql_setmysqlpass.sh': + path => '/usr/local/sbin/setmysqlpass.sh', + source => "puppet:///modules/mysql/scripts/${::operatingsystem}/setmysqlpass.sh", + require => Package['mysql-server'], + owner => root, + group => 0, + mode => '0500'; + 'mysql_root_cnf': + path => '/root/.my.cnf', + content => template('mysql/root/my.cnf.erb'), + require => [ Package['mysql-server'] ], + notify => Exec['mysql_set_rootpw'], + owner => root, + group => 0, + mode => '0400'; } exec { 'mysql_set_rootpw': - command => '/usr/local/sbin/setmysqlpass.sh', - unless => "mysqladmin -uroot status > /dev/null", - require => [ File['mysql_setmysqlpass.sh'], Package['mysql-server'] ], + command => '/usr/local/sbin/setmysqlpass.sh', + unless => 'mysqladmin -uroot status > /dev/null', + require => [ File['mysql_setmysqlpass.sh'], Package['mysql-server'] ], refreshonly => true, } @@ -66,16 +71,18 @@ class mysql::server::base { } service { 'mysql': - ensure => running, - enable => true, + ensure => running, + enable => true, hasstatus => true, - require => Package['mysql-server'], + require => Package['mysql-server'], } - include mysql::server::account_security + if $::mysql_exists == 'true' { + include mysql::server::account_security - # Collect all databases and users - Mysql_database<<| tag == "mysql_${::fqdn}" |>> - Mysql_user<<| tag == "mysql_${::fqdn}" |>> - Mysql_grant<<| tag == "mysql_${::fqdn}" |>> + # Collect all databases and users + Mysql_database<<| tag == "mysql_${::fqdn}" |>> + Mysql_user<<| tag == "mysql_${::fqdn}" |>> + Mysql_grant<<| tag == "mysql_${::fqdn}" |>> + } } -- cgit v1.2.3