module-icinga2/manifests/params.pp
2014-09-13 16:50:41 -07:00

340 lines
13 KiB
ObjectPascal

# == Class: icinga2::params
#
# This class contains config options and settings for use elsewhere in the module.
#
# === Parameters
#
# See the inline comments.
#
class icinga2::params {
##############################
# Icinga 2 common parameters
##############################
#This section has parameters that are used by both the client and server subclasses
##################
# Icinga 2 common package parameters
case $::operatingsystem {
#Red Hat/CentOS systems:
'CentOS': {
#Pick the right package provider:
$package_provider = 'yum'
}
#Ubuntu systems:
'Ubuntu': {
#Pick the right package provider:
$package_provider = 'apt'
}
#Fail if we're on any other OS:
default: { fail("${::operatingsystem} is not supported!") }
}
##############################
# Icinga 2 server parameters
##############################
#Whether to manage the package repositories
$manage_repos = true
$server_db_type = 'pgsql'
#Database paramters
$db_name = 'icinga2_data'
$db_user = 'icinga2'
$db_password = 'password'
$db_host = 'localhost'
$db_port = '5432'
#Whether to install the plugin packages when the icinga2::server class is applied:
$server_install_nagios_plugins = true
##############################
# Icinga 2 server package parameters
#Pick the right package parameters based on the OS:
case $::operatingsystem {
#Red Hat/CentOS systems:
'CentOS': {
#Icinga 2 server package
$icinga2_server_package = 'icinga2'
$icinga2_server_plugin_packages = ["nagios-plugins-nrpe", "nagios-plugins-all", "nagios-plugins-openmanage", "nagios-plugins-check-updates"]
}
#Ubuntu systems:
'Ubuntu': {
case $::operatingsystemrelease {
#Ubuntu 12.04 doesn't have nagios-plugins-common or nagios-plugins-contrib packages available...
'12.04': {
$icinga2_server_package = 'icinga2'
$icinga2_server_plugin_packages = ["nagios-plugins", "nagios-plugins-basic", "nagios-plugins-standard", "nagios-snmp-plugins", "nagios-plugins-extra", "nagios-nrpe-plugin"]
#Specify '--no-install-recommends' so we don't inadvertently get Nagios 3 installed; it comes as a recommended package with most of the plugin packages:
$server_plugin_package_install_options = '--no-install-recommends'
}
#...but 14.04 does:
'14.04': {
$icinga2_server_package = 'icinga2'
$icinga2_server_plugin_packages = [ "nagios-plugins", "nagios-plugins-basic", "nagios-plugins-common", "nagios-plugins-standard", "nagios-snmp-plugins", "nagios-plugins-extra", "nagios-plugins-contrib", "nagios-nrpe-plugin"]
#Specify '--no-install-recommends' so we don't inadvertently get Nagios 3 installed; it comes as a recommended package with most of the plugin packages:
$server_plugin_package_install_options = '--no-install-recommends'
}
}
}
#Fail if we're on any other OS:
default: { fail("${::operatingsystem} is not supported!") }
}
##############################
# Icinga 2 server config parameters
case $::operatingsystem {
#Red Hat/CentOS systems:
'CentOS': {
#Settings for /etc/icinga2/:
$etc_icinga2_owner = 'icinga'
$etc_icinga2_group = 'icinga'
$etc_icinga2_mode = '750'
#Settings for /etc/icinga2/icinga2.conf:
$etc_icinga2_icinga2_conf_owner = 'icinga'
$etc_icinga2_icinga2_conf_group = 'icinga'
$etc_icinga2_icinga2_conf_mode = '640'
#Settings for /etc/icinga2/conf.d/
$etc_icinga2_confd_owner = 'icinga'
$etc_icinga2_confd_group = 'icinga'
$etc_icinga2_confd_mode = '750'
#Settings for /etc/icinga2/features-available/:
$etc_icinga2_features_available_owner = 'icinga'
$etc_icinga2_features_available_group = 'icinga'
$etc_icinga2_features_available_mode = '750'
#Settings for /etc/icinga2/features-enabled/:
$etc_icinga2_features_enabled_owner = 'icinga'
$etc_icinga2_features_enabled_group = 'icinga'
$etc_icinga2_features_enabled_mode = '750'
#Settings for /etc/icinga2/pki/:
$etc_icinga2_pki_owner = 'icinga'
$etc_icinga2_pki_group = 'icinga'
$etc_icinga2_pki_mode = '750'
#Settings for /etc/icinga2/scripts/:
$etc_icinga2_scripts_owner = 'icinga'
$etc_icinga2_scripts_group = 'icinga'
$etc_icinga2_scripts_mode = '750'
#Settings for /etc/icinga2/zones.d/:
$etc_icinga2_zonesd_owner = 'icinga'
$etc_icinga2_zonesd_group = 'icinga'
$etc_icinga2_zonesd_mode = '750'
#Settings for /etc/icinga2/objects/:
$etc_icinga2_obejcts_owner = 'icinga'
$etc_icinga2_obejcts_group = 'icinga'
$etc_icinga2_obejcts_mode = '750'
#Settings for subdirectories of /etc/icinga2/objects/:
$etc_icinga2_obejcts_sub_dir_owner = 'icinga'
$etc_icinga2_obejcts_sub_dir_group = 'icinga'
$etc_icinga2_obejcts_sub_dir_mode = '750'
}
#Ubuntu systems:
'Ubuntu': {
case $::operatingsystemrelease {
#Ubuntu 12.04 Precise Pangolin:
'12.04': {
#Settings for /etc/icinga2/:
$etc_icinga2_owner = 'root'
$etc_icinga2_group = 'root'
$etc_icinga2_mode = '755'
#Settings for /etc/icinga2/icinga2.conf:
$etc_icinga2_icinga2_conf_owner = 'root'
$etc_icinga2_icinga2_conf_group = 'root'
$etc_icinga2_icinga2_conf_mode = '644'
#Settings for /etc/icinga2/conf.d/
$etc_icinga2_confd_owner = 'root'
$etc_icinga2_confd_group = 'root'
$etc_icinga2_confd_mode = '755'
#Settings for /etc/icinga2/features-available/:
$etc_icinga2_features_available_owner = 'root'
$etc_icinga2_features_available_group = 'root'
$etc_icinga2_features_available_mode = '755'
#Settings for /etc/icinga2/features-enabled/:
$etc_icinga2_features_enabled_owner = 'root'
$etc_icinga2_features_enabled_group = 'root'
$etc_icinga2_features_enabled_mode = '755'
#Settings for /etc/icinga2/pki/:
$etc_icinga2_pki_owner = 'root'
$etc_icinga2_pki_group = 'root'
$etc_icinga2_pki_mode = '755'
#Settings for /etc/icinga2/scripts/:
$etc_icinga2_scripts_owner = 'root'
$etc_icinga2_scripts_group = 'root'
$etc_icinga2_scripts_mode = '755'
#Settings for /etc/icinga2/zones.d/:
$etc_icinga2_zonesd_owner = 'root'
$etc_icinga2_zonesd_group = 'root'
$etc_icinga2_zonesd_mode = '755'
#Settings for /etc/icinga2/objects/:
$etc_icinga2_obejcts_owner = 'root'
$etc_icinga2_obejcts_group = 'root'
$etc_icinga2_obejcts_mode = '755'
#Settings for subdirectories of /etc/icinga2/objects/:
$etc_icinga2_obejcts_sub_dir_owner = 'root'
$etc_icinga2_obejcts_sub_dir_group = 'root'
$etc_icinga2_obejcts_sub_dir_mode = '755'
}
#Ubuntu 14.04 Trusty Tahr:
'14.04': {
#Settings for /etc/icinga2/:
$etc_icinga2_owner = 'root'
$etc_icinga2_group = 'root'
$etc_icinga2_mode = '755'
#Settings for /etc/icinga2/icinga2.conf:
$etc_icinga2_icinga2_conf_owner = 'root'
$etc_icinga2_icinga2_conf_group = 'root'
$etc_icinga2_icinga2_conf_mode = '644'
#Settings for /etc/icinga2/conf.d/
$etc_icinga2_confd_owner = 'root'
$etc_icinga2_confd_group = 'root'
$etc_icinga2_confd_mode = '755'
#Settings for /etc/icinga2/features-available:
$etc_icinga2_features_available_owner = 'root'
$etc_icinga2_features_available_group = 'root'
$etc_icinga2_features_available_mode = '755'
#Settings for /etc/icinga2/features-enabled:
$etc_icinga2_features_enabled_owner = 'root'
$etc_icinga2_features_enabled_group = 'root'
$etc_icinga2_features_enabled_mode = '755'
#Settings for /etc/icinga2/pki/:
$etc_icinga2_pki_owner = 'root'
$etc_icinga2_pki_group = 'root'
$etc_icinga2_pki_mode = '755'
#Settings for /etc/icinga2/scripts/:
$etc_icinga2_scripts_owner = 'root'
$etc_icinga2_scripts_group = 'root'
$etc_icinga2_scripts_mode = '755'
#Settings for /etc/icinga2/zones.d/:
$etc_icinga2_zonesd_owner = 'root'
$etc_icinga2_zonesd_group = 'root'
$etc_icinga2_zonesd_mode = '755'
#Settings for /etc/icinga2/objects/:
$etc_icinga2_obejcts_owner = 'root'
$etc_icinga2_obejcts_group = 'root'
$etc_icinga2_obejcts_mode = '755'
#Settings for subdirectories of /etc/icinga2/objects/:
$etc_icinga2_obejcts_sub_dir_owner = 'root'
$etc_icinga2_obejcts_sub_dir_group = 'root'
$etc_icinga2_obejcts_sub_dir_mode = '755'
}
}
}
#Fail if we're on any other OS:
default: { fail("${::operatingsystem} is not supported!") }
}
##################
# Icinga 2 server service settings
case $::operatingsystem {
#Icinga 2 server daemon names for Red Had/CentOS systems:
'CentOS': {
$icinga2_server_service_name = 'icinga2'
}
#Icinga 2 server daemon names for Ubuntu systems:
'Ubuntu': {
$icinga2_server_service_name = 'icinga2'
}
#Fail if we're on any other OS:
default: { fail("${::operatingsystem} is not supported!") }
}
##############################
# Icinga 2 client parameters
##############################
##################
# Icinga 2 client settings
$nrpe_listen_port = '5666'
$nrpe_log_facility = 'daemon'
$nrpe_debug_level = '0'
#in seconds:
$nrpe_command_timeout = '60'
#in seconds:
$nrpe_connection_timeout = '300'
#Note: because we use .join in the nrpe.cfg.erb template, this value *must* be an array
$nrpe_allowed_hosts = ['127.0.0.1',]
case $::operatingsystem {
#File and template variable names for Red Had/CentOS systems:
'CentOS': {
$nrpe_config_basedir = "/etc/nagios"
$nrpe_plugin_libdir = "/usr/lib64/nagios/plugins"
$nrpe_pid_file_path = "/var/run/nrpe/nrpe.pid"
$nrpe_user = "nrpe"
$nrpe_group = "nrpe"
}
#File and template variable names for Ubuntu systems:
'Ubuntu': {
$nrpe_config_basedir = "/etc/nagios"
$nrpe_plugin_libdir = "/usr/lib/nagios/plugins"
$nrpe_pid_file_path = "/var/run/nagios/nrpe.pid"
$nrpe_user = "nagios"
$nrpe_group = "nagios"
}
#Fail if we're on any other OS:
default: { fail("${::operatingsystem} is not supported!") }
}
##################
# Icinga 2 client package parameters
case $::operatingsystem {
#Red Hat/CentOS systems:
'CentOS': {
#Pick the right list of client packages:
$icinga2_client_packages = ["nrpe", "nagios-plugins-nrpe", "nagios-plugins-all", "nagios-plugins-openmanage", "nagios-plugins-check-updates"]
}
#Ubuntu systems:
'Ubuntu': {
case $::operatingsystemrelease {
#Ubuntu 12.04 doesn't have nagios-plugins-common or nagios-plugins-contrib packages available...
'12.04': {
$icinga2_client_packages = ["nagios-nrpe-server", "nagios-plugins", "nagios-plugins-basic", "nagios-plugins-standard", "nagios-snmp-plugins", "nagios-plugins-extra", "nagios-nrpe-plugin"]
#Specify '--no-install-recommends' so we don't inadvertently get Nagios 3 installed; it comes as a recommended package with most of the plugin packages:
$client_plugin_package_install_options = '--no-install-recommends'
}
#...but 14.04 does:
'14.04': {
$icinga2_client_packages = ["nagios-nrpe-server", "nagios-plugins", "nagios-plugins-basic", "nagios-plugins-common", "nagios-plugins-standard", "nagios-snmp-plugins", "nagios-plugins-extra", "nagios-plugins-contrib", "nagios-nrpe-plugin"]
#Specify '--no-install-recommends' so we don't inadvertently get Nagios 3 installed; it comes as a recommended package with most of the plugin packages:
$client_plugin_package_install_options = '--no-install-recommends'
}
}
}
#Fail if we're on any other OS:
default: { fail("${::operatingsystem} is not supported!") }
}
##################
# Icinga 2 client service parameters
case $::operatingsystem {
#Daemon names for Red Had/CentOS systems:
'CentOS': {
$nrpe_daemon_name = 'nrpe'
}
#Daemon names for Ubuntu systems:
'Ubuntu': {
$nrpe_daemon_name = 'nagios-nrpe-server'
}
#Fail if we're on any other OS:
default: { fail("${::operatingsystem} is not supported!") }
}
}