96211d89d1
The git clone does not create the docs folder, so this fails: ``` /Stage[main]/Icingaweb2::Initialize/Exec[create db scheme]/returns: sh: /usr/share/doc/icingaweb2/schema/mysql.schema.sql: No such file or directory ==> default: Error: mysql --defaults-file='/root/.my.cnf' icingaweb2 < /usr/share/doc/icingaweb2/schema/mysql.schema.sql returned 1 instead of one of [0] ``` This checks if the user is using the git installation method, then changes to the location of the correct schema. Also adds spec to check this logic
42 lines
1.5 KiB
Puppet
42 lines
1.5 KiB
Puppet
# == Class icingaweb2::initialize
|
|
#
|
|
# This class is used to initialize a default icingaweb2 db and user
|
|
# Depends on the pupppetlabs-mysql module
|
|
class icingaweb2::initialize {
|
|
if $::icingaweb2::initialize {
|
|
case $::operatingsystem {
|
|
'RedHat', 'CentOS': {
|
|
case $::icingaweb2::web_db {
|
|
'mysql': {
|
|
|
|
if $::icingaweb2::install_method == 'git' {
|
|
$sql_schema_location = '/usr/share/icingaweb2/etc/schema/mysql.schema.sql'
|
|
} else {
|
|
$sql_schema_location = '/usr/share/doc/icingaweb2/schema/mysql.schema.sql'
|
|
}
|
|
|
|
exec { 'create db scheme':
|
|
command => "mysql --defaults-file='/root/.my.cnf' ${::icingaweb2::web_db_name} < ${sql_schema_location}",
|
|
unless => "mysql --defaults-file='/root/.my.cnf' ${::icingaweb2::web_db_name} -e \"SELECT 1 FROM icingaweb_user LIMIT 1;\"",
|
|
notify => Exec['create web user']
|
|
}
|
|
|
|
exec { 'create web user':
|
|
command => "mysql --defaults-file='/root/.my.cnf' ${::icingaweb2::web_db_name} -e \" INSERT INTO icingaweb_user (name, active, password_hash) VALUES ('icingaadmin', 1, '\\\$1\\\$EzxLOFDr\\\$giVx3bGhVm4lDUAw6srGX1');\"",
|
|
refreshonly => true,
|
|
}
|
|
}
|
|
|
|
default: {
|
|
fail "DB type ${::icingaweb2::web_db} not supported yet"
|
|
}
|
|
}
|
|
}
|
|
|
|
default: {
|
|
fail "Managing repositories for ${::operatingsystem} is not supported."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|