From 82fa6e690f1b37a1512c322d4016830a1ff6a0d4 Mon Sep 17 00:00:00 2001 From: Alexander Klimov Date: Tue, 5 Aug 2014 13:09:33 +0200 Subject: [PATCH] Outsource Icinga (2) database population into mysql::database --- .vagrant-puppet/manifests/default.pp | 16 ++++------------ .../modules/mysql/manifests/database.pp | 8 +++++++- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/.vagrant-puppet/manifests/default.pp b/.vagrant-puppet/manifests/default.pp index 3e8549329..390b31b7b 100644 --- a/.vagrant-puppet/manifests/default.pp +++ b/.vagrant-puppet/manifests/default.pp @@ -11,11 +11,15 @@ $icinga2Version = '2.0.0' mysql::database { 'icinga': username => 'icinga', password => 'icinga', + schemafile => "/usr/local/src/icinga-mysql/icinga-${icingaVersion}/module/idoutils/db/mysql/mysql.sql", + requirement => Cmmi['icinga-mysql'], } mysql::database { 'icinga2': username => 'icinga2', password => 'icinga2', + schemafile => "/usr/share/doc/icinga2-ido-mysql-${icinga2Version}/schema/mysql.sql", + requirement => Package['icinga2-ido-mysql'], } exec{ 'create-pgsql-icinga-db': @@ -111,12 +115,6 @@ file { '/etc/init.d/ido2db-pgsql': require => Cmmi['icinga-pgsql'] } -exec { 'populate-icinga-mysql-db': - unless => 'mysql -uicinga -picinga icinga -e "SELECT * FROM icinga_dbversion;" &> /dev/null', - command => "mysql -uroot icinga < /usr/local/src/icinga-mysql/icinga-${icingaVersion}/module/idoutils/db/mysql/mysql.sql", - require => [ Cmmi['icinga-mysql'], Exec['create-mysql-icinga-db'] ] -} - exec { 'populate-icinga-pgsql-db': unless => 'psql -U icinga -d icinga -c "SELECT * FROM icinga_dbversion;" &> /dev/null', command => "sudo -u postgres psql -U icinga -d icinga < /usr/local/src/icinga-pgsql/icinga-${icingaVersion}/module/idoutils/db/pgsql/pgsql.sql", @@ -415,12 +413,6 @@ package { 'icinga2-ido-mysql': alias => 'icinga2-ido-mysql' } -exec { 'populate-icinga2-mysql-db': - unless => 'mysql -uicinga2 -picinga2 icinga2 -e "SELECT * FROM icinga_dbversion;" &> /dev/null', - command => "mysql -uroot icinga2 < /usr/share/doc/icinga2-ido-mysql-$icinga2Version/schema/mysql.sql", - require => [ Exec['create-mysql-icinga2-db'], Package['icinga2-ido-mysql'] ] -} - file { '/etc/icinga2/features-available/ido-mysql.conf': source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icinga2/features-available/ido-mysql.conf', diff --git a/.vagrant-puppet/modules/mysql/manifests/database.pp b/.vagrant-puppet/modules/mysql/manifests/database.pp index 7e3127cfc..e0f990c1b 100644 --- a/.vagrant-puppet/modules/mysql/manifests/database.pp +++ b/.vagrant-puppet/modules/mysql/manifests/database.pp @@ -1,4 +1,4 @@ -define mysql::database ($username, $password) { +define mysql::database ($username, $password, $schemafile, $requirement) { include mysql exec { "create-mysql-${name}-db": @@ -8,4 +8,10 @@ GRANT SELECT,INSERT,UPDATE,DELETE ON ${name}.* TO ${username}@localhost \ IDENTIFIED BY '${password}';\"", require => Service['mysqld'] } + + exec { "populate-${name}-mysql-db": + unless => "mysql -u${username} -p${password} ${name} -e \"SELECT * FROM icinga_dbversion;\" &> /dev/null", + command => "mysql -uroot ${name} < ${schemafile}", + require => [ $requirement, Exec["create-mysql-${name}-db"] ] + } }