From 88065832896cddf0efb3c0d0aa1fd5c8c21ae7bc Mon Sep 17 00:00:00 2001 From: Alexander Klimov Date: Mon, 4 Aug 2014 13:40:11 +0200 Subject: [PATCH] Outsource Icinga (2) database creation into mysql::database refs #6842 --- .vagrant-puppet/manifests/default.pp | 16 ++----------- .../modules/mysql/manifests/database.pp | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 14 deletions(-) create mode 100644 .vagrant-puppet/modules/mysql/manifests/database.pp diff --git a/.vagrant-puppet/manifests/default.pp b/.vagrant-puppet/manifests/default.pp index 68affd347..c75917725 100644 --- a/.vagrant-puppet/manifests/default.pp +++ b/.vagrant-puppet/manifests/default.pp @@ -8,21 +8,9 @@ Exec { path => '/bin:/usr/bin:/sbin' } $icingaVersion = '1.11.2' $icinga2Version = '2.0.0' -exec { 'create-mysql-icinga-db': - unless => 'mysql -uicinga -picinga icinga', - command => 'mysql -uroot -e "CREATE DATABASE icinga; \ - GRANT SELECT,INSERT,UPDATE,DELETE ON icinga.* TO icinga@localhost \ - IDENTIFIED BY \'icinga\';"', - require => Service['mysqld'] -} +mysql::database { 'icinga': } -exec { 'create-mysql-icinga2-db': - unless => 'mysql -uicinga2 -picinga2 icinga2', - command => 'mysql -uroot -e "CREATE DATABASE icinga2; \ - GRANT SELECT,INSERT,UPDATE,DELETE ON icinga2.* to icinga2@localhost \ - IDENTIFIED BY \'icinga2\';"', - require => Service['mysqld'] -} +mysql::database { 'icinga2': } exec{ 'create-pgsql-icinga-db': unless => 'sudo -u postgres psql -tAc "SELECT 1 FROM pg_roles WHERE rolname=\'icinga\'" | grep -q 1', diff --git a/.vagrant-puppet/modules/mysql/manifests/database.pp b/.vagrant-puppet/modules/mysql/manifests/database.pp new file mode 100644 index 000000000..1c1a97dee --- /dev/null +++ b/.vagrant-puppet/modules/mysql/manifests/database.pp @@ -0,0 +1,23 @@ +define mysql::database ( + $username = 'UNDEF', + $password = 'UNDEF' +) { + include mysql + + $user = $username ? { + /UNDEF/ => $name, + default => $username, + } + $pass = $password ? { + /UNDEF/ => $user, + default => $password, + } + + exec { "create-mysql-${name}-db": + unless => "mysql -u${user} -p${pass} ${name}", + command => "mysql -uroot -e \"CREATE DATABASE ${name}; \ +GRANT SELECT,INSERT,UPDATE,DELETE ON ${name}.* TO ${user}@localhost \ +IDENTIFIED BY '${pass}';\"", + require => Service['mysqld'] + } +}