module-icingaweb2/manifests/config.pp
Stefan Kleindl eb61819522 add parameter manage_user
which defines if user and group should be managed by this module. This gives
you the possibility to manage the user and group with another module or
manually.

The default value is set to true so it doesn't change the existent behaviour
of this module.
2016-02-16 09:41:02 +01:00

153 lines
4.2 KiB
Puppet

# == Class icingaweb2::config
#
class icingaweb2::config (
$config_dir = $::icingaweb2::config_dir,
$config_dir_purge = $::icingaweb2::config_dir_purge,
$web_root = $::icingaweb2::web_root,
) {
if $::icingaweb2::manage_user {
@user { 'icingaweb2':
ensure => present,
home => $::icingaweb2::web_root,
managehome => true,
}
@group { 'icingaweb2':
ensure => present,
system => true,
}
realize(User['icingaweb2'])
realize(Group['icingaweb2'])
}
File {
require => Class['::icingaweb2::install'],
owner => $::icingaweb2::config_user,
group => $::icingaweb2::config_group,
mode => $::icingaweb2::config_file_mode,
}
file {
$::icingaweb2::config_dir:
ensure => directory,
mode => $::icingaweb2::config_dir_mode,
purge => $::icingaweb2::config_dir_purge,
recurse => $::icingaweb2::config_dir_recurse;
"${::icingaweb2::config_dir}/enabledModules":
ensure => directory,
mode => $::icingaweb2::config_dir_mode;
"${::icingaweb2::config_dir}/modules":
ensure => directory,
mode => $::icingaweb2::config_dir_mode;
"${::icingaweb2::config_dir}/authentication.ini":
ensure => file;
"${::icingaweb2::config_dir}/config.ini":
ensure => file;
"${::icingaweb2::config_dir}/resources.ini":
ensure => file;
"${::icingaweb2::config_dir}/roles.ini":
ensure => file;
$::icingaweb2::web_root:
ensure => directory,
mode => $::icingaweb2::config_dir_mode;
"${::icingaweb2::web_root}/modules":
ensure => directory,
mode => $::icingaweb2::config_dir_mode;
}
# Configure authentication.ini settings
case $::icingaweb2::auth_backend {
'db': {
icingaweb2::config::authentication_database { 'Local Database Authentication':
auth_section => 'icingaweb2',
auth_resource => $::icingaweb2::auth_resource,
}
}
'external': {
icingaweb2::config::authentication_external { 'External Authentication':
auth_section => 'icingaweb2',
}
}
default: {}
}
# Configure config.ini settings
Ini_Setting {
ensure => present,
require => File["${::icingaweb2::config_dir}/config.ini"],
path => "${::icingaweb2::config_dir}/config.ini",
}
# Logging Configuration
ini_setting { 'icingaweb2 config logging method':
section => 'logging',
setting => 'log',
value => "\"${::icingaweb2::log_method}\"",
}
ini_setting { 'icingaweb2 config logging level':
section => 'logging',
setting => 'level',
value => "\"${::icingaweb2::log_level}\"",
}
ini_setting { 'icingaweb2 config logging application':
section => 'logging',
setting => 'application',
value => "\"${::icingaweb2::log_application}\"",
}
# Preferences Configuration
ini_setting { 'icingaweb2 config preferences store':
section => 'preferences',
setting => 'store',
value => "\"${::icingaweb2::log_store}\"",
}
ini_setting { 'icingaweb2 config preferences resource':
section => 'preferences',
setting => 'resource',
value => "\"${::icingaweb2::log_resource}\"",
}
# Configure resources.ini
icingaweb2::config::resource_database { 'icingaweb_db':
resource_db => $::icingaweb2::web_db,
resource_host => $::icingaweb2::web_db_host,
resource_port => $::icingaweb2::web_db_port,
resource_dbname => $::icingaweb2::web_db_name,
resource_username => $::icingaweb2::web_db_user,
resource_password => $::icingaweb2::web_db_pass,
}
icingaweb2::config::resource_database { 'icinga_ido':
resource_db => $::icingaweb2::ido_db,
resource_host => $::icingaweb2::ido_db_host,
resource_port => $::icingaweb2::ido_db_port,
resource_dbname => $::icingaweb2::ido_db_name,
resource_username => $::icingaweb2::ido_db_user,
resource_password => $::icingaweb2::ido_db_pass,
}
# Configure roles.ini
icingaweb2::config::roles { 'Admins':
role_users => $::icingaweb2::admin_users,
role_permissions => $::icingaweb2::admin_permissions,
}
if $::icingaweb2::manage_apache_vhost {
::apache::custom_config { 'icingaweb2':
content => template($::icingaweb2::template_apache),
}
}
}