diff options
Diffstat (limited to 'manifests/server.pp')
-rw-r--r-- | manifests/server.pp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/manifests/server.pp b/manifests/server.pp new file mode 100644 index 0000000..3b118f9 --- /dev/null +++ b/manifests/server.pp @@ -0,0 +1,52 @@ +class mysql::server( + $rootpw => hiera('mysql::server::rootpw', '') +){ + include mysql + + package { "mysql-server": + ensure => installed, + } + + service { "mysql": + ensure => running, + enable => true, + hasrestart => true, + hasstatus => true, + require => Package["mysql-server"], + } + + case $rootpw { + '': { fail("You need to define a mysql root password! Please set mysql::server::rootpw config") } + } + + file { '/usr/local/sbin/setmysqlpass.sh': + content => template('mysql/setmysqlpass.sh.erb'), + require => Service['mysql'], + owner => root, + group => root, + mode => 0500, + } + + exec { 'set_mysql_rootpw': + command => "/usr/local/sbin/setmysqlpass.sh", + require => [ File['/usr/local/sbin/setmysqlpass.sh'], Package[mysql-server] ], + refreshonly => true, + user => root, + } + + mysql::cnf { "root": + home => "/root", + passwd => $rootpw, + } + + define mysql::cnf($home, $passwd) { + file { "$home/.my.cnf": + content => template('mysql/my.cnf.erb'), + require => Service['mysql'], + owner => root, + group => root, + mode => 0400, + notify => Exec['set_mysql_rootpw'], + } + } +} |