icingaweb2: Installs and configures Icinga Web 2.icingaweb2::globals: This class loads the default parameters by doing a hiera lookup.icingaweb2::module::audit: Installs and enables the audit module.icingaweb2::module::businessprocess: Installs and enables the businessprocess module.icingaweb2::module::cube: Installs and enables the cube module.icingaweb2::module::director: Install and configure the director module.icingaweb2::module::doc: The doc module provides an interface to the Icinga 2 and Icinga Web 2 documentation.icingaweb2::module::elasticsearch: The Elasticsearch module displays events from data stored in Elasticsearch.icingaweb2::module::fileshipper: The fileshipper module extends the Director. It offers import sources to deal with CSV, JSON, YAML and XML files.icingaweb2::module::generictts: Installs and enables the generictts module.icingaweb2::module::graphite: The Graphite module draws graphs out of time series data stored in Graphite.icingaweb2::module::icingadb: Manages the icingadb module. This module is still optional at the moment.icingaweb2::module::idoreports: Installs, configures and enables the idoreports module. The module is deprecated.icingaweb2::module::monitoring: Manages the monitoring module. This module is deprecated.icingaweb2::module::pdfexport: Installs, configures and enables the pdfexport module.icingaweb2::module::perfdatagraphs: Installs and enables the perfdatagraphs module.icingaweb2::module::perfdatagraphsgraphite: Installs and enables the perfdatagraphsgraphite module.icingaweb2::module::puppetdb: Installs and configures the puppetdb module.icingaweb2::module::reporting: Installs the reporting moduleicingaweb2::module::translation: Installs and configures the translation module.icingaweb2::module::vspheredb: Installs the vsphereDB pluginicingaweb2::module::x509: Installs the x509 module
icingaweb2::config: Configures Icinga Web 2.icingaweb2::install: Installs Icinga Web 2 and extra packages.icingaweb2::module::director::config: Configure the director module.icingaweb2::module::director::install: Install the director module.icingaweb2::module::director::kickstart: Import or update the database schema. Also start the initial kickstart run if required.icingaweb2::module::director::service: Manage the director service.icingaweb2::module::icingadb::config: Configure the icingadb module.icingaweb2::module::icingadb::install: Install the icingadb module.icingaweb2::module::monitoring::config: Configure the monitoring module.icingaweb2::module::monitoring::install: Installs the monitoring module.icingaweb2::module::reporting::config: Configure the reporting module.icingaweb2::module::reporting::install: Install the reporting module.icingaweb2::module::reporting::service: Manage the reporting service.icingaweb2::module::vspheredb::config: Configure the VSphereDB moduleicingaweb2::module::vspheredb::install: Install the VSphereDB moduleicingaweb2::module::vspheredb::service: Manage the vspheredb service.icingaweb2::module::x509::config: Configure the x509 moduleicingaweb2::module::x509::install: Install the x509 moduleicingaweb2::module::x509::service: Manage the x509 job scheduler.
icingaweb2::config::authmethod: Manage Icinga Web 2 authentication methods. Auth methods may be chained by setting proper ordering.icingaweb2::config::dashboard: Manage a dashboard.icingaweb2::config::dashlet: Manage a dashlet.icingaweb2::config::groupbackend: Groups of users can be stored either in a database, LDAP or ActiveDirectory. This defined type configures backends that store groups.icingaweb2::config::navigation: Navigate defines a menu entry, host- or service action.icingaweb2::config::role: Roles define a set of permissions that may be applied to users or groups.icingaweb2::inisection: Manage settings in INI configuration files.icingaweb2::module: Download, enable and configure Icinga Web 2 modules.icingaweb2::resource::database: Create and remove Icinga Web 2 database resources.icingaweb2::resource::ldap: Create and remove Icinga Web 2 resources. Resources may be referenced in other configuration sections.
icingaweb2::module::elasticsearch::eventtype: Manages an Elasticsearch event typesicingaweb2::module::elasticsearch::instance: Manages an Elasticsearch instanceicingaweb2::module::fileshipper::basedir: Manages base directories for the fileshipper module.icingaweb2::module::fileshipper::directory: Manages directories with plain Icinga 2 configuration files.icingaweb2::module::generictts::ticketsystem: Manages ticketsystem configuration for the generictts module.icingaweb2::module::icingadb::commandtransport: Manages commandtransport configuration for the icingadb module.icingaweb2::module::monitoring::commandtransport: Manages commandtransport configuration for the monitoring module.icingaweb2::module::puppetdb::certificate: Installs a certificate for the Icinga Web 2 puppetdb module.
icingaweb2::pick: This function returns first parameter if set.
Icingaweb2::AdminRole: A strict type for the default admin roleIcingaweb2::ImportSchema: A type for setting import database schemata
oracle, mssql, ibm, oci, sqlite goes to icingaweb2::resource::database.
include ::mysql::server
mysql::db { 'icingaweb2':
user => 'icingaweb2',
password => Sensitive('supersecret'),
host => 'localhost',
grant => [ 'ALL' ],
}
class { 'icingaweb2':
manage_repos => true,
import_schema => true,
db_type => 'mysql',
db_host => 'localhost',
db_port => 3306,
db_username => 'icingaweb2',
db_password => Sensitive('supersecret'),
require => Mysql::Db['icingaweb2'],
}include ::postgresql::server
postgresql::server::db { 'icingaweb2':
user => 'icingaweb2',
password => postgresql_password('icingaweb2', Sensitive('icingaweb2')),
}
class { 'icingaweb2':
manage_repos => true,
import_schema => true,
db_type => 'pgsql',
db_host => 'localhost',
db_port => 5432,
db_username => 'icingaweb2',
db_password => 'icingaweb2',
require => Postgresql::Server::Db['icingaweb2'],
}class { 'icingaweb2':
resources => {
'my-ldap' => {
type => 'ldap',
host => 'localhost',
port => 389,
root_dn => 'ou=users,dc=icinga,dc=com',
bind_dn => 'cn=icingaweb2,ou=users,dc=icinga,dc=com',
bind_pw => Sensitive('supersecret'),
}
},
user_backends => {
'ldap-auth' => {
backend => 'ldap',
resource => 'my-ldap',
ldap_user_class => 'user',
ldap_filter => '(memberof:1.2.840.113556.1.4.1941:=CN=monitoring,OU=groups,DC=icinga,DC=com)',
ldap_user_name_attribute => 'userPrincipalName',
order => '05',
},
},
group_backends => {
'ldap-auth' => {
backend => 'ldap',
resource => 'my-ldap',
ldap_group_class => 'group',
ldap_group_name_attribute => 'cn',
ldap_group_member_attribute => 'member',
ldap_base_dn => 'ou=groups,dc=icinga,dc=com',
domain => 'icinga.com',
order => '05',
},
},
}The following parameters are available in the icingaweb2 class:
logginglogging_filelogging_levellogging_facilitylogging_applicationshow_stacktracesmodule_paththemetheme_disabledmanage_reposmanage_packageextra_packagesimport_schemadb_typedb_resource_namedb_hostdb_portdb_namedb_usernamedb_passworduse_tlstls_key_filetls_cert_filetls_cacert_filetls_keytls_certtls_cacerttls_capathtls_noverifytls_cipherconf_userconf_groupdefault_domaincookie_pathuse_strict_cspadmin_roledefault_admin_usernamedefault_admin_passwordresourcesdefault_auth_backenduser_backendsgroup_backends
Data type: Enum['file', 'syslog', 'php', 'none']
Whether Icinga Web 2 should log to 'file', 'syslog' or 'php' (web server's error log). Setting 'none' disables logging.
Default value: 'syslog'
Data type: Stdlib::Absolutepath
If 'logging' is set to 'file', this is the target log file.
Data type: Enum['ERROR', 'WARNING', 'INFO', 'DEBUG']
Logging verbosity. Possible values are 'ERROR', 'WARNING', 'INFO' and 'DEBUG'.
Default value: 'INFO'
Data type: Pattern[/user|local[0-7]/]
Logging facility when using syslog. Possible values are 'user' or 'local0' up to 'local7'.
Default value: 'user'
Data type: String[1]
Logging application name when using syslog.
Default value: 'icingaweb2'
Data type: Boolean
Whether to display stacktraces in the web interface or not.
Default value: false
Data type:
Optional[Variant[Stdlib::Absolutepath,
Array[Stdlib::Absolutepath]]]Additional path to module sources. Multiple paths must be separated by colon.
Default value: undef
Data type: String[1]
The default theme setting. Users may override this settings.
Default value: 'Icinga'
Data type: Boolean
Whether users can change themes or not.
Default value: false
Data type: Boolean
When set to true this module will use the module icinga/puppet-icinga to manage repositories, e.g. the release repo on packages.icinga.com repository by default, the EPEL repository or Backports. For more information, see http://github.com/icinga/puppet-icinga.
Default value: false
Data type: Boolean
If set to false packages aren't managed.
Default value: true
Data type: Optional[Array[String[1]]]
An array of packages to install additionally.
Default value: undef
Data type: Optional[Icingaweb2::ImportSchema]
Whether to import the MySQL schema or not. New options mariadb and mysql,
both means true. With mariadb its cli options are used for the import,
whereas with mysql its different options.
Default value: undef
Data type: Enum['mysql', 'pgsql']
Database type, can be either mysql or pgsql.
Data type: String[1]
Name for the icingaweb2 database resource.
Default value: 'icingaweb2'
Data type: Stdlib::Host
Database hostname.
Default value: 'localhost'
Data type: Optional[Stdlib::Port]
Port to connect on the database host.
Default value: undef
Data type: String[1]
Database name.
Default value: 'icingaweb2'
Data type: String[1]
Username for database access.
Default value: 'icingaweb2'
Data type: Optional[Icinga::Secret]
Password for database access.
Default value: undef
Data type: Optional[Boolean]
Either enable or disable TLS encryption to the database. Other TLS parameters are only affected if this is set to 'true'.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the private key for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the certificate for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the ca certificate. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Icinga::Secret]
The private key to store in spicified tls_key_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The certificate to store in spicified tls_cert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The ca certificate to store in spicified tls_cacert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format. Only available for the mysql database.
Default value: undef
Data type: Optional[Boolean]
Disable validation of the server certificate.
Default value: undef
Data type: Optional[String[1]]
Cipher to use for the encrypted database connection.
Default value: undef
Data type: String[1]
By default this module expects Apache2 on the server. You can change the owner of the config files with this parameter.
Data type: String[1]
Group membership of config files.
Data type: Optional[String[1]]
When using domain-aware authentication, you can set a default domain here.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Path to where cookies are stored.
Default value: undef
Data type: Optional[Boolean]
Enable the inclusion of Content Security Policy (CSP) headers in application responses.
Default value: undef
Data type: Variant[Icingaweb2::AdminRole, Boolean[false]]
Manage a role for admin access.
Default value: { 'name' => 'default admin user' }
Data type: String[1]
Default username for initial admin access. This parameter is only used
if import_schema is set to true and only during the import itself.
Default value: 'icingaadmin'
Data type: Icinga::Secret
Default password for initial admin access. This parameter is only used
if import_schema is set to true and only during the import itself.
Default value: 'icinga'
Data type: Hash[String[1], Hash[String[1], Any]]
Additional resources. Option type has to be set as hash key. Type of ldap
declares a define resource of icingaweb2::resource::ldap, a type of mysql, pgsql,
Default value: {}
Data type: Variant[String[1], Boolean[false]]
Name of the user and group backend authentication of the icingaweb2 resource.
If set to false the default authentication method is deactivated.
Default value: 'Icinga Web 2'
Data type: Hash[String[1], Hash[String[1], Any]]
Additional user backends for access control. See icingaweb2::config::authmethod.
Default value: {}
Data type: Hash[String[1], Hash[String[1], Any]]
Additional group backends for access control. See icingaweb2::config::groupbackend.
Default value: {}
This class loads the default parameters by doing a hiera lookup.
- Note This parameters depend on the os plattform. Changes maybe will break the functional capability of the supported plattforms and versions. Please only do changes when you know what you're doing.
The following parameters are available in the icingaweb2::globals class:
package_nameconf_dirstate_dirdata_dirrole_replacecomp_db_schema_dirdefault_module_pathmysql_db_schemapgsql_db_schemamysql_vspheredb_schemapgsql_vspheredb_schemamysql_reporting_schemapgsql_reporting_schemamysql_idoreports_slaperiodsmysql_idoreports_sla_percentpgsql_idoreports_slaperiodspgsql_idoreports_sla_percentmysql_x509_schemapgsql_x509_schemagettext_package_nameicingacli_bin
Data type: String[1]
Package to install.
Data type: Stdlib::Absolutepath
Path to the config files.
Data type: Stdlib::Absolutepath
Path to variable application data.
Data type: Stdlib::Absolutepath
Location of PHP data files.
Data type: Boolean
Specifies whether to overwrite the roles.ini file if it already exists.
Default value: true
Data type: Stdlib::Absolutepath
For compatibility, since in Icinga Web 2 2.11.4 the schema files have been moved.
Data type: Stdlib::Absolutepath
Location of the modules.
Data type: Stdlib::Absolutepath
Location of the database schema for MySQL/MariaDB.
Data type: Stdlib::Absolutepath
Location of the database schema for PostgreSQL.
Data type: Stdlib::Absolutepath
Location of the vspheredb database schema for MySQL/MariaDB.
Default value: '/schema/mysql.sql'
Data type: Stdlib::Absolutepath
Location of the vspheredb database schema for PostgreSQL.
Default value: '/schema/pgsql.sql'
Data type: Stdlib::Absolutepath
Location of the reporting database schema for MySQL/MariaDB.
Default value: '/schema/mysql.schema.sql'
Data type: Stdlib::Absolutepath
Location of the reporting database schema for PostgreSQL.
Default value: '/schema/pgsql.schema.sql'
Data type: Stdlib::Absolutepath
Location of the slaperiods database extension for MySQL.
Default value: '/schema/mysql/slaperiods.sql'
Data type: Stdlib::Absolutepath
Location of the get_sla_ok_percent database extension for MySQL.
Default value: '/schema/mysql/get_sla_ok_percent.sql'
Data type: Stdlib::Absolutepath
Location of the slaperiods database extension for PostgreSQL.
Default value: '/schema/postgresql/slaperiods.sql'
Data type: Stdlib::Absolutepath
Location of the get_sla_ok_percent database extension for PostgreSQL.
Default value: '/schema/postgresql/get_sla_ok_percent.sql'
Data type: Stdlib::Absolutepath
Location of the x509 database schema for MySQL/MariaDB.
Default value: '/schema/mysql.schema.sql'
Data type: Stdlib::Absolutepath
Location of the x509 database schema for PostgreSQL.
Default value: '/schema/pgsql.schema.sql'
Data type: String[1]
Package name gettext tool belongs to.
Data type: Stdlib::Absolutepath
Path to `icingacli' comand line tool.
Installs and enables the audit module.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed.
class { 'icingaweb2::module::audit':
git_revision => 'v1.0.2',
log_type => 'syslog',
log_facility => 'authpriv',
}The following parameters are available in the icingaweb2::module::audit class:
ensuremodule_dirgit_repositorygit_revisioninstall_methodpackage_namelog_typelog_filelog_identlog_facilitystream_formatstream_file
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/audit"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/Icinga/icingaweb2-module-audit.git'
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. master or v1.0.2.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Enum['file', 'syslog', 'none']
Logging type to use.
Default value: 'none'
Data type: Optional[Stdlib::Absolutepath]
Location of the log file. Only valid if log_type is set to file.
Default value: undef
Data type: Optional[String]
Logging prefix ident. Only valid if log_type is set to syslog.
Default value: undef
Data type:
Variant[
Enum['auth', 'user', 'authpriv'],
Pattern[/^local[0-7]$/]
]Facility to log to. Only valid if log_type is set to syslog.
Default value: 'auth'
Data type: Enum['json', 'none']
Set to json to stream in JSON format. Disabled by setting to none.
Default value: 'none'
Data type: Optional[Stdlib::Absolutepath]
Path to the stream destination.
Default value: undef
Installs and enables the businessprocess module.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages.
class { 'icingaweb2::module::businessprocess':
git_revision => 'v2.1.0'
}The following parameters are available in the icingaweb2::module::businessprocess class:
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/businessprocess"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/Icinga/icingaweb2-module-businessprocess.git'
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. master or v2.1.0.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Installs and enables the cube module.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages.
class { 'icingaweb2::module::cube':
git_revision => 'v1.0.0'
}The following parameters are available in the icingaweb2::module::cube class:
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/cube"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/Icinga/icingaweb2-module-cube.git'
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. master or v1.0.0.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Install and configure the director module.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages.
class { 'icingaweb2::module::director':
git_revision => 'v1.7.2',
db_host => 'localhost',
db_name => 'director',
db_username => 'director',
db_password => 'supersecret',
import_schema => true,
kickstart => true,
endpoint => 'puppet-icingaweb2.localdomain',
api_username => 'director',
api_password => 'supersecret',
require => Mysql::Db['director']
}The following parameters are available in the icingaweb2::module::director class:
ensuremodule_dirgit_repositorygit_revisioninstall_methodpackage_namedb_typedb_resource_namedb_hostdb_portdb_namedb_usernamedb_passworddb_charsetuse_tlstls_key_filetls_cert_filetls_cacert_filetls_keytls_certtls_cacerttls_capathtls_noverifytls_cipherimport_schemakickstartendpointapi_hostapi_portapi_usernameapi_passwordmanage_serviceservice_ensureservice_enableservice_user
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/director"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/Icinga/icingaweb2-module-director.git'
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. master or v1.3.2.
Default value: undef
Data type: Enum['git', 'package', 'none']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Enum['mysql', 'pgsql']
Type of your database. Either mysql or pgsql.
Data type: String[1]
Name for the director database resource.
Default value: 'director'
Data type: Stdlib::Host
Hostname of the database.
Default value: 'localhost'
Data type: Optional[Stdlib::Port]
Port of the database.
Default value: undef
Data type: String[1]
Name of the database.
Default value: 'director'
Data type: String[1]
Username for DB connection.
Default value: 'director'
Data type: Optional[Icinga::Secret]
Password for DB connection.
Default value: undef
Data type: Optional[String[1]]
Character set to use for the database.
Default value: undef
Data type: Optional[Boolean]
Either enable or disable TLS encryption to the database. Other TLS parameters are only affected if this is set to 'true'.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the private key for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the certificate for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the ca certificate. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Icinga::Secret]
The private key to store in spicified tls_key_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The certificate to store in spicified tls_cert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The ca certificate to store in spicified tls_cacert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format. Only available for the mysql database.
Default value: undef
Data type: Optional[Boolean]
Disable validation of the server certificate.
Default value: undef
Data type: Optional[String[1]]
Cipher to use for the encrypted database connection.
Default value: undef
Data type: Optional[Boolean]
Import database schema.
Default value: undef
Data type: Boolean
Run kickstart command after database migration. This requires import_schema to be true.
Default value: false
Data type: Optional[String[1]]
Endpoint object name of Icinga 2 API. This setting is only valid if kickstart is true.
Default value: undef
Data type: Stdlib::Host
Icinga 2 API hostname. This setting is only valid if kickstart is true.
Default value: 'localhost'
Data type: Stdlib::Port
Icinga 2 API port. This setting is only valid if kickstart is true.
Default value: 5665
Data type: Optional[String[1]]
Icinga 2 API username. This setting is only valid if kickstart is true.
Default value: undef
Data type: Optional[Icinga::Secret]
Icinga 2 API password. This setting is only valid if kickstart is true.
Default value: undef
Data type: Boolean
If set to true the service (daemon) is managed.
Default value: true
Data type: Stdlib::Ensure::Service
Wether the service is running or stopped.
Default value: 'running'
Data type: Boolean
Whether the service should be started at boot time.
Default value: true
Data type: String[1]
The user as which the service is running. Only valid if install_method is set to git.
Default value: 'icingadirector'
The doc module provides an interface to the Icinga 2 and Icinga Web 2 documentation.
The following parameters are available in the icingaweb2::module::doc class:
Data type: Enum['absent', 'present']
Enable or disable module. Defaults to present
Default value: 'present'
The Elasticsearch module displays events from data stored in Elasticsearch.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages.
class { 'icingaweb2::module::elasticsearch':
git_revision => 'v0.9.0',
instances => {
'elastic' => {
uri => 'http://localhost:9200',
user => 'foo',
password => 'bar',
}
},
eventtypes => {
'filebeat' => {
instance => 'elastic',
index => 'filebeat-*',
filter => 'beat.hostname={host.name}',
fields => 'input_type, source, message',
}
}
}The following parameters are available in the icingaweb2::module::elasticsearch class:
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/elasticsearch"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/Icinga/icingaweb2-module-elasticsearch.git'
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. master or v1.3.2.
Default value: undef
Data type: Optional[Hash]
A hash that configures one or more Elasticsearch instances that this module connects to. The defined type
icingaweb2::module::elasticsearch::instance is used to create the instance configuration.
Default value: undef
Data type: Optional[Hash]
A hash oft ypes of events that should be displayed. Event types are always connected to instances. The defined type
icingaweb2::module::elasticsearch::eventtype is used to create the event types.
Default value: undef
@example: class { 'icingaweb2::module::fileshipper': git_revision => 'v1.0.1', base_directories => { temp => '/var/lib/fileshipper' }, directories => { 'test' => { 'source' => '/var/lib/fileshipper/source', 'target' => '/var/lib/fileshipper/target', } } }
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages.
The following parameters are available in the icingaweb2::module::fileshipper class:
ensuremodule_dirgit_repositoryinstall_methodpackage_namegit_revisionbase_directoriesdirectories
Data type: Enum['absent', 'present']
Enables or disables module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/fileshipper"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/Icinga/icingaweb2-module-fileshipper.git'
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. master or v1.3.2.
Default value: undef
Data type: Hash
Hash of base directories. These directories can later be selected in the import source (Director).
Default value: {}
Data type: Hash
Deploy plain Icinga 2 configuration files through the Director to your Icinga 2 master.
Default value: {}
Installs and enables the generictts module.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages.
class { 'icingaweb2::module::generictts':
git_revision => 'v2.0.0',
ticketsystems => {
'my-ticket-system' => {
pattern => '/#([0-9]{4,6})/',
url => 'https://my.ticket.system/tickets/id=$1',
},
},
}The following parameters are available in the icingaweb2::module::generictts class:
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/generictts"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/Icinga/icingaweb2-module-generictts.git'
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. master or v2.0.0.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Hash
A hash of ticketsystems. The hash expects a patten and a url for each ticketsystem.
The regex pattern is to match the ticket ID, eg. /#([0-9]{4,6})/. Place the ticket ID
in the URL, eg. https://my.ticket.system/tickets/id=$1.
Default value: {}
The Graphite module draws graphs out of time series data stored in Graphite.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages.
class { 'icingaweb2::module::graphite':
git_revision => 'v0.9.0',
url => 'https://localhost:8080'
}The following parameters are available in the icingaweb2::module::graphite class:
ensuremodule_dirgit_repositorygit_revisioninstall_methodpackage_nameurlinsecureuserpasswordgraphite_writer_host_name_templategraphite_writer_service_name_templatecustomvar_obscured_check_commanddefault_time_range_unitdefault_time_rangedisable_no_graphs
Data type: Enum['absent', 'present']
Enables or disables module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/graphite"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/Icinga/icingaweb2-module-graphite.git'
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. master or v1.3.2.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Optional[Stdlib::HTTPUrl]
URL to your Graphite Web/API.
Default value: undef
Data type: Optional[Boolean]
Do not verify the TLS certificate.
Default value: undef
Data type: Optional[String[1]]
A user with access to your Graphite Web via HTTP basic authentication.
Default value: undef
Data type: Optional[Icinga::Secret]
The users password.
Default value: undef
Data type: Optional[String[1]]
The value of your Icinga 2 GraphiteWriter's attribute host_name_template (if specified).
Default value: undef
Data type: Optional[String[1]]
The value of your icinga 2 GraphiteWriter's attribute service_name_template (if specified).
Default value: undef
Data type: Optional[String[1]]
The Icinga custom variable with the actual check command obscured by e.g. check_by_ssh.
Default value: undef
Data type:
Optional[Enum[
'minutes', 'hours', 'days',
'weeks', 'months', 'years'
]]Set unit for the time range.
Default value: undef
Data type: Optional[Integer[1]]
Set the displayed time range.
Default value: undef
Data type: Optional[Boolean]
Do not display empty graphs.
Default value: undef
Manages the icingadb module. This module is still optional at the moment.
- Note At first have a look at the IcingaDB module documentation.
The following parameters are available in the icingaweb2::module::icingadb class:
ensurepackage_namedb_typedb_resource_namedb_hostdb_portdb_namedb_usernamedb_passworddb_charsetdb_use_tlsdb_tls_cert_filedb_tls_key_filedb_tls_cacert_filedb_tls_certdb_tls_keydb_tls_cacertdb_tls_capathdb_tls_noverifydb_tls_cipherredis_hostredis_portredis_passwordredis_primary_hostredis_primary_portredis_primary_passwordredis_secondary_hostredis_secondary_portredis_secondary_passwordredis_use_tlsredis_tls_certredis_tls_keyredis_tls_cacertredis_tls_cert_fileredis_tls_key_fileredis_tls_cacert_filesettingscommandtransports
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: String[1]
IicngaDB-Web module package name.
Data type: Enum['mysql', 'pgsql']
Type of your IDO database. Either mysql or pgsql.
Data type: String[1]
Name for the icingadb database resource.
Default value: 'icingadb'
Data type: Stdlib::Host
Hostname of the IcingaDB database.
Default value: 'localhost'
Data type: Optional[Stdlib::Port]
Port of the IcingaDB database.
Default value: undef
Data type: String[1]
Name of the IcingaDB database.
Default value: 'icingadb'
Data type: String[1]
Username for IcingaDB database connection.
Default value: 'icingadb'
Data type: Optional[Icinga::Secret]
Password for IcingaDB database connection.
Default value: undef
Data type: Optional[String[1]]
The character set to use for the IcingaDB database connection.
Default value: undef
Data type: Optional[Boolean]
Either enable or disable TLS encryption to the database. Other TLS parameters are only affected if this is set to 'true'.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the certificate for client authentication. Only valid if db_use_tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the private key for client authentication. Only valid if db_use_tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the CA root certificate. Only valid if db_use_tls is enabled.
Default value: undef
Data type: Optional[String]
The client certificate in PEM format. Only valid if db_use_tls is enabled.
Default value: undef
Data type: Optional[Icinga::Secret]
The client private key in PEM format. Only valid if db_use_tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The CA root certificate in PEM format. Only valid if db_use_tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format. Only available for the mysql database.
Default value: undef
Data type: Optional[Boolean]
Disable validation of the server certificate.
Default value: undef
Data type: Optional[String[1]]
Cipher to use for the encrypted database connection.
Default value: undef
Data type: Stdlib::Host
Redis host to connect.
Default value: 'localhost'
Data type: Optional[Stdlib::Port]
Connect redis_host om this port.
Default value: undef
Data type: Optional[Icinga::Secret]
Password for Redis connection.
Default value: undef
Data type: Stdlib::Host
Alternative parameter to use for redis_host. Useful for high availability environments.
Default value: $redis_host
Data type: Optional[Stdlib::Port]
Alternative parameter to use for redis_port. Useful for high availability environments.
Default value: $redis_port
Data type: Optional[Icinga::Secret]
Alternative parameter to use for redis_passwod. Useful for high availability environments.
Default value: $redis_password
Data type: Optional[Stdlib::Host]
Fallback Redis host to connect if the first one fails.
Default value: undef
Data type: Optional[Stdlib::Port]
Port to connect on the fallback Redis server.
Default value: undef
Data type: Optional[Icinga::Secret]
Password for the second Redis server.
Default value: undef
Data type: Optional[Boolean]
Use tls encrypt connection for Redis. All Credentials are applied for both connections in a high availability environments.
Default value: undef
Data type: Optional[String[1]]
Client certificate in PEM format to authenticate to Redis. Only valid if redis_use_tls is enabled.
Default value: undef
Data type: Optional[Icinga::Secret]
Client private key in PEM format. Only valid if redis_use_tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The CA certificate in PEM format. Only valid if redis_use_tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the client certificate. Only valid if redis_use_tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the private key. Only valid if redis_use_tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the CA certificate. Only valid if redis_use_tls is enabled.
Default value: undef
Data type: Hash[String[1], Any]
General configuration of module icingadb. See official Icinga documentation
Default value: {}
Data type: Hash[String[1], Hash]
A hash of command transports.
Default value: {}
Installs, configures and enables the idoreports module. The module is deprecated.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages.
class { 'icingaweb2::module::idoreports':
git_revision => 'v0.10.0',
}The following parameters are available in the icingaweb2::module::idoreports class:
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/idoreports"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/Icinga/icingaweb2-module-idoreports.git'
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. master or v2.1.0.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Optional[Icingaweb2::ImportSchema]
The IDO database needs some extensions for reorting. Whether to import the database extensions or not.
Options mariadb and mysql, both means true. With mariadb its cli options are used for the import,
whereas with mysql its different options.
Default value: undef
Requirements:
- IDO feature in Icinga 2 (MySQL or PostgreSQL)
ApiUserobject in Icinga 2 with proper permissions
class {'icingaweb2::module::monitoring': ido_host => 'localhost', ido_type => 'mysql', ido_db_name => 'icinga2', ido_db_username => 'icinga2', ido_db_password => 'supersecret', commandtransports => { icinga2 => { transport => 'api', username => 'icingaweb2', password => 'supersecret', } } }
- Note At first have a look at the Monitoring module documentation.
This module is mandatory for almost every setup. It connects your Icinga Web interface to the Icinga 2 core. Current and history information are queried through the IDO database. Actions such as Check Now, Set Downtime or Acknowledge are send to the Icinga 2 API.
The following parameters are available in the icingaweb2::module::monitoring class:
ensureprotected_customvarsido_typeido_hostido_portido_resource_nameido_db_nameido_db_usernameido_db_passwordido_db_charsetuse_tlstls_key_filetls_cert_filetls_cacert_filetls_keytls_certtls_cacerttls_capathtls_noverifytls_ciphersettingscommandtransports
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Variant[String[1], Array[String[1]]]
Custom variables in Icinga 2 may contain sensible information. Set patterns for custom variables that should be hidden in the web interface.
Default value: ['*pw*', '*pass*', 'community']
Data type: Enum['mysql', 'pgsql']
Type of your IDO database. Either mysql or pgsql.
Data type: Stdlib::Host
Hostname of the IDO database.
Default value: 'localhost'
Data type: Optional[Stdlib::Port]
Port of the IDO database.
Default value: undef
Data type: String
Resource name for the IDO database.
Default value: 'icinga2'
Data type: String
Name of the IDO database.
Default value: 'icinga2'
Data type: String
Username for IDO DB connection.
Default value: 'icinga2'
Data type: Optional[Icinga::Secret]
Password for IDO DB connection.
Default value: undef
Data type: Optional[String[1]]
The character set to use for the database connection.
Default value: undef
Data type: Optional[Boolean]
Either enable or disable TLS encryption to the database. Other TLS parameters are only affected if this is set to 'true'.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the private key for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the certificate for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the ca certificate. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Icinga::Secret]
The private key to store in spicified tls_key_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The certificate to store in spicified tls_cert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The ca certificate to store in spicified tls_cacert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format. Only available for the mysql database.
Default value: undef
Data type: Optional[Boolean]
Disable validation of the server certificate.
Default value: undef
Data type: Optional[String[1]]
Cipher to use for the encrypted database connection.
Default value: undef
Data type: Hash[String[1], Any]
General configuration of module monitoring. See official Icinga documentation
Default value: {}
Data type: Hash
A hash of command transports.
Default value: {}
Installs, configures and enables the pdfexport module.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages.
class { 'icingaweb2::module::pdfexport':
git_revision => 'v0.10.0',
chrome_binary => '/usr/bin/chromium-browser',
}The following parameters are available in the icingaweb2::module::pdfexport class:
ensuremodule_dirgit_repositorygit_revisioninstall_methodpackage_namechrome_binaryforce_temp_storageremote_hostremote_port
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/pdfexport"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/Icinga/icingaweb2-module-pdfexport.git'
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. master or v2.1.0.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Path of the chrome or Chrome/Chromium binary.
Default value: undef
Data type: Optional[Boolean]
Force using of local temp storage.
Default value: undef
Data type: Optional[Stdlib::Host]
Connect a remote running Chrome/Chromium.
Default value: undef
Data type: Optional[Stdlib::Port]
Port to connect the remote running Chrome/Chromium.
Default value: undef
Installs and enables the perfdatagraphs module.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed.
The following parameters are available in the icingaweb2::module::perfdatagraphs class:
ensuremodule_dirgit_repositorygit_revisioninstall_methodpackage_namedefault_backenddefault_timerangecache_lifetime
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/perfdatagraphs"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/NETWAYS/icingaweb2-module-perfdatagraphs.git'
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. main or v0.1.1.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Enum['Graphite']
Backend type.
Data type: String[1]
Default timerange to show. Has to be in format defined in ISO 8601, e.g. PT12H.
Default value: 'PT12H'
Data type: Optional[Integer[1]]
Cache lifetime in seconds.
Default value: undef
Installs and enables the perfdatagraphsgraphite module.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed.
The following parameters are available in the icingaweb2::module::perfdatagraphsgraphite class:
ensuremodule_dirgit_repositorygit_revisioninstall_methodpackage_nameapi_urlapi_usernameapi_passwordapi_timeoutapi_tls_insecurewriter_host_name_templatewriter_service_name_template
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/perfdatagraphsgraphite"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/NETWAYS/icingaweb2-module-perfdatagraphs-graphite.git'
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. main or v0.1.1.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Stdlib::HTTPUrl
URI to the graphite API.
Default value: 'http://127.0.0.1:8542'
Data type: Optional[String[1]]
Username to authenticate to the graphite API.
Default value: undef
Data type: Optional[Icinga::Secret]
Password that belongs to api_username.
Default value: undef
Data type: Optional[Integer[1]]
Connection timeout to the graphite API.
Default value: undef
Data type: Boolean
Wether to validate the certificate of the graphite API.
Default value: false
Data type: Optional[String[1]]
Host template. See Icinga 2 feature graphite.
Default value: undef
Data type: Optional[String[1]]
Service template. See Icinga 2 feature graphite.
Default value: undef
Installs and configures the puppetdb module.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages.
$certificates = {
'pupdb1' => {
:ssl_key => '-----BEGIN RSA PRIVATE KEY----- abc...',
:ssl_cacert => '-----BEGIN RSA PRIVATE KEY----- def...',
},
'pupdb2' => {
:ssl_key => '-----BEGIN RSA PRIVATE KEY----- zyx...',
:ssl_cacert => '-----BEGIN RSA PRIVATE KEY----- wvur...',
},
}
class { '::icingaweb2::module::puppetdb':
git_revision => 'master',
ssl => 'none',
certificates => $certificates,
}class {'::icingaweb2::module::puppetdb':
git_revision => 'master',
ssl => 'puppet',
host => 'puppetdb.example.com',
}The following parameters are available in the icingaweb2::module::puppetdb class:
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/puppetdb"
Data type: Stdlib::HTTPUrl
Set a git repository URL.
Default value: 'https://github.com/Icinga/icingaweb2-module-puppetdb.git'
Data type: Optional[String[1]]
Set either a branch or a tag name, eg. master or v1.3.2.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Enum['none', 'puppet']
How to set up ssl certificates. To copy certificates from the local puppet installation, use puppet.
Default value: 'none'
Data type: Optional[Stdlib::Host]
Hostname of the server where PuppetDB is running. The ssl parameter needs to be set to puppet.
Default value: undef
Data type: Hash
Hash with icingaweb2::module::puppetdb::certificate resources.
Default value: {}
Installs the reporting module
class { 'icingaweb2::module::reporting':
ensure => present,
git_revision => 'v0.9.0',
db_host => 'localhost',
db_name => 'reporting',
db_username => 'reporting',
db_password => 'supersecret',
}The following parameters are available in the icingaweb2::module::reporting class:
ensuremodule_dirgit_repositorygit_revisioninstall_methodpackage_namedb_typedb_resource_namedb_hostdb_portdb_namedb_usernamedb_passworddb_charsetuse_tlstls_key_filetls_cert_filetls_cacert_filetls_keytls_certtls_cacerttls_capathtls_noverifytls_cipherimport_schemamailmanage_serviceservice_ensureservice_enableservice_user
Data type: Enum['absent', 'present']
Ensures the state of the reporting module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/reporting"
Data type: Stdlib::HTTPUrl
The upstream module repository.
Default value: 'https://github.com/Icinga/icingaweb2-module-reporting.git'
Data type: Optional[String[1]]
The version of the module that needs to be used.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Enum['mysql', 'pgsql']
The database type. Either mysql or postgres.
Data type: String[1]
Name for the reporting database resource.
Default value: 'reporting'
Data type: Stdlib::Host
The host where the reporting database will be running
Default value: 'localhost'
Data type: Optional[Stdlib::Port]
The port on which the database is accessible.
Default value: undef
Data type: String[1]
The name of the database this module should use.
Default value: 'reporting'
Data type: String[1]
The username needed to access the database.
Default value: 'reporting'
Data type: Optional[Icinga::Secret]
The password needed to access the database.
Default value: undef
Data type: Optional[String[1]]
The charset the database is set to.
Default value: undef
Data type: Optional[Boolean]
Either enable or disable TLS encryption to the database. Other TLS parameters are only affected if this is set to 'true'.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the private key for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the certificate for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the ca certificate. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Icinga::Secret]
The private key to store in spicified tls_key_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The certificate to store in spicified tls_cert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The ca certificate to store in spicified tls_cacert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format. Only available for the mysql database.
Default value: undef
Data type: Optional[Boolean]
Disable validation of the server certificate.
Default value: undef
Data type: Optional[String[1]]
Cipher to use for the encrypted database connection.
Default value: undef
Data type: Optional[Icingaweb2::ImportSchema]
Whether to import the database schema or not. Options mariadb and mysql,
both means true. With mariadb its cli options are used for the import,
whereas with mysql its different options.
Default value: undef
Data type: Optional[String[1]]
Mails are sent with this sender address.
Default value: undef
Data type: Boolean
If set to true the service (daemon) is managed.
Default value: true
Data type: Stdlib::Ensure::Service
Wether the service is running or stopped.
Default value: 'running'
Data type: Boolean
Whether the service should be started at boot time.
Default value: true
Data type: String[1]
The user as which the service is running. Only valid if install_method is set to git.
Default value: 'icingareporting'
Installs and configures the translation module.
The following parameters are available in the icingaweb2::module::translation class:
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Installs the vsphereDB plugin
class { 'icingaweb2::module::vspheredb':
ensure => 'present',
git_revision => 'v1.1.0',
db_host => 'localhost',
db_name => 'vspheredb',
db_username => 'vspheredb',
db_password => 'supersecret',
}The following parameters are available in the icingaweb2::module::vspheredb class:
ensuremodule_dirgit_repositorygit_revisioninstall_methodpackage_namedb_typedb_resource_namedb_hostdb_portdb_namedb_usernamedb_passworddb_charsetuse_tlstls_key_filetls_cert_filetls_cacert_filetls_keytls_certtls_cacerttls_capathtls_noverifytls_cipherimport_schemamanage_serviceservice_ensureservice_enableservice_user
Data type: Enum['absent', 'present']
Ensur es the state of the vspheredb module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/vspheredb"
Data type: Stdlib::HTTPUrl
The upstream module repository.
Default value: 'https://github.com/Icinga/icingaweb2-module-vspheredb.git'
Data type: Optional[String[1]]
The version of the module that needs to be used.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Enum['mysql']
The database type. Either mysql or postgres.
Data type: String[1]
Name for the vspheredb database resource.
Default value: 'vspheredb'
Data type: Stdlib::Host
The host where the vspheredb-database will be running
Default value: 'localhost'
Data type: Optional[Stdlib::Port]
The port on which the database is accessible.
Default value: undef
Data type: String[1]
The name of the database this module should use.
Default value: 'vspheredb'
Data type: String[1]
The username needed to access the database.
Default value: 'vspheredb'
Data type: Optional[Icinga::Secret]
The password needed to access the database.
Default value: undef
Data type: Optional[String[1]]
The charset the database is set to.
Default value: undef
Data type: Optional[Boolean]
Either enable or disable TLS encryption to the database. Other TLS parameters are only affected if this is set to 'true'.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the private key for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the certificate for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the ca certificate. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Icinga::Secret]
The private key to store in spicified tls_key_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The certificate to store in spicified tls_cert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The ca certificate to store in spicified tls_cacert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format. Only available for the mysql database.
Default value: undef
Data type: Optional[Boolean]
Disable validation of the server certificate.
Default value: undef
Data type: Optional[String[1]]
Cipher to use for the encrypted database connection.
Default value: undef
Data type: Optional[Icingaweb2::ImportSchema]
Whether to import the database schema or not. New options mariadb and mysql,
both means true. With mariadb its cli options are used for the import,
whereas with mysql its different options.
Default value: undef
Data type: Boolean
If set to true the service (daemon) is managed.
Default value: true
Data type: Stdlib::Ensure::Service
Wether the service is running or stopped.
Default value: 'running'
Data type: Boolean
Whether the service should be started at boot time.
Default value: true
Data type: String[1]
The user as which the service is running. Only valid if install_method is set to git.
Default value: 'icingavspheredb'
Installs the x509 module
class { 'icingaweb2::module::x509':
ensure => present,
git_revision => 'v1.2.1',
db_host => 'localhost',
db_name => 'x509',
db_username => 'x509',
db_password => Sensitive('supersecret'),
}The following parameters are available in the icingaweb2::module::x509 class:
ensuremodule_dirgit_repositorygit_revisioninstall_methodpackage_namedb_typedb_resource_namedb_hostdb_portdb_namedb_usernamedb_passworddb_charsetuse_tlstls_key_filetls_cert_filetls_cacert_filetls_keytls_certtls_cacerttls_capathtls_noverifytls_cipherimport_schemamanage_serviceservice_ensureservice_enableservice_user
Data type: Enum['absent', 'present']
Ensures the state of the x509 module.
Default value: 'present'
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${icingaweb2::globals::default_module_path}/x509"
Data type: Stdlib::HTTPUrl
The upstream module repository.
Default value: 'https://github.com/Icinga/icingaweb2-module-x509.git'
Data type: Optional[String[1]]
The version of the module that needs to be used.
Default value: undef
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method.
Default value: 'git'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Enum['mysql', 'pgsql']
The database type. Either mysql or pgsql.
Data type: String[1]
Name for the x509 database resource.
Default value: 'x509'
Data type: Stdlib::Host
The host where the database will be running
Default value: 'localhost'
Data type: Optional[Stdlib::Port]
The port on which the database is accessible.
Default value: undef
Data type: String[1]
The name of the database this module should use.
Default value: 'x509'
Data type: String[1]
The username needed to access the database.
Default value: 'x509'
Data type: Optional[Icinga::Secret]
The password needed to access the database.
Default value: undef
Data type: Optional[String[1]]
The charset the database is set to.
Default value: undef
Data type: Optional[Boolean]
Either enable or disable TLS encryption to the database. Other TLS parameters are only affected if this is set to 'true'.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the private key for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the certificate for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the ca certificate. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Icinga::Secret]
The private key to store in spicified tls_key_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The certificate to store in spicified tls_cert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[String[1]]
The ca certificate to store in spicified tls_cacert_file file. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format. Only available for the mysql database.
Default value: undef
Data type: Optional[Boolean]
Disable validation of the server certificate.
Default value: undef
Data type: Optional[String[1]]
Cipher to use for the encrypted database connection.
Default value: undef
Data type: Optional[Icingaweb2::ImportSchema]
Whether to import the database schema or not. Options mariadb and mysql,
both means true. With mariadb its cli options are used for the import,
whereas with mysql its different options.
Default value: undef
Data type: Boolean
If set to true the service (daemon) is managed.
Default value: true
Data type: Stdlib::Ensure::Service
Wether the service is running or stopped.
Default value: 'running'
Data type: Boolean
Whether the service should be started at boot time.
Default value: true
Data type: String[1]
The user as which the service is running. Only valid if install_method is set to git.
Default value: 'icingax509'
Manage Icinga Web 2 authentication methods. Auth methods may be chained by setting proper ordering.
icingaweb2::config::authmethod { 'db-auth':
backend => 'db',
resource => 'my-sql',
order => 20,
}icingaweb2::config::authmethod { 'ldap-auth':
backend => 'ldap',
resource => 'my-ldap',
ldap_user_class => 'user',
ldap_filter => '(memberof:1.2.840.113556.1.4.1941:=CN=monitoring,OU=groups,DC=icinga,DC=com)',
ldap_user_name_attribute => 'userPrincipalName',
order => '05',
}The following parameters are available in the icingaweb2::config::authmethod defined type:
Data type: Enum['external', 'ldap', 'msldap', 'db']
Select between 'external', 'ldap', 'msldap' or 'db'. Each backend may require other settings.
Data type: Optional[String]
The name of the resource defined in resources.ini.
Default value: undef
Data type: Optional[String]
LDAP user class. Only valid if backend is ldap or msldap.
Default value: undef
Data type: Optional[String]
LDAP attribute which contains the username. Only valid if backend is ldap or msldap.
Default value: undef
Data type: Optional[String]
LDAP search filter. Only valid if backend is ldap or msladap.
Default value: undef
Data type: Optional[String]
LDAP base DN. Only valid if backend is ldap or msldap.
Default value: undef
Data type: Optional[String]
Domain for domain-aware authentication
Default value: undef
Data type: Variant[String, Integer]
Multiple authentication methods can be chained. The order of entries in the authentication configuration determines the order of the authentication methods.
Default value: '30'
Manage a dashboard.
icingaweb2::config::dashboard { 'icingaadmin-NewDashboard':
owner => 'icingaadmin',
dashboard => 'New Dashboard',
}The following parameters are available in the icingaweb2::config::dashboard defined type:
Data type: String
Owner of the dashboard.
Data type: String
Title of the dashboard.
Manage a dashlet.
icingaweb2::config::dashboard { 'icingaadmin-NewDashboard':
owner => 'icingaadmin',
dashboard => 'New Dashboard',
}
icingaweb2::config::dashlet { 'icingaadmin-NewDashboard':
owner => 'icingaadmin',
dashboard => 'New Dashboard',
dashlet => 'New Dashlet',
url => 'monitoring/list/hosts',
}icingaweb2::config::dashlet { 'icingaadmin-Overdue-NewDashlet':
owner => 'icingaadmin',
dashboard => 'Overdue',
dashlet => 'New Dashlet',
url => 'monitoring/list/hosts',
}The following parameters are available in the icingaweb2::config::dashlet defined type:
Data type: String
Owner of the dashlet.
Data type: String
Dashboard to which the dashlet belongs.
Data type: String
Name of the dashlet.
Data type: String
URL of the dashlet.
Groups of users can be stored either in a database, LDAP or ActiveDirectory. This defined type configures backends that store groups.
icingaweb2::config::groupbackend { 'ldap-groups':
backend => 'ldap',
resource => 'my-ldap',
ldap_group_class => 'group',
ldap_group_name_attribute => 'cn',
ldap_group_member_attribute => 'member',
ldap_base_dn => 'ou=groups,dc=icinga,dc=com',
domain => 'icinga.com',
}If you have imported the database schema (parameter import_schema), this backend was also created automatically:
icingaweb2::config::groupbackend { 'mysql-backend':
backend => 'db',
resource => 'my-sql',
}The following parameters are available in the icingaweb2::config::groupbackend defined type:
group_namebackendresourceldap_user_backendldap_group_classldap_group_filterldap_group_name_attributeldap_group_member_attributeldap_base_dnldap_nested_group_searchdomainorder
Data type: String
Name of the resources. Resources are referenced by their name in other configuration sections.
Default value: $title
Data type: Enum['db', 'ldap', 'msldap']
Type of backend. Valide values are: db, ldap and msldap. Each backend supports different settings,
see the parameters for detailed information.
Data type: String
The resource used to connect to the backend. The resource contains connection information.
Data type: Optional[String]
A group backend can be connected with an authentication method. This parameter references the auth method.
Only valid with backend ldap or msldap.
Default value: undef
Data type: Optional[String]
Class used to identify group objects. Only valid with backend ldap.
Default value: undef
Data type: Optional[String]
Use a LDAP filter to receive only certain groups. Only valid with backend ldap or msldap.
Default value: undef
Data type: Optional[String]
The group name attribute. Only valid with backend ldap.
Default value: undef
Data type: Optional[String]
The group member attribute. Only valid with backend ldap.
Default value: undef
Data type: Optional[String]
Base DN that is searched for groups. Only valid with backend ldap with msldap.
Default value: undef
Data type: Optional[Boolean]
Search for groups in groups. Only valid with backend msldap.
Default value: undef
Data type: Optional[String]
Domain for domain-aware authentication.
Default value: undef
Data type: Variant[String, Integer]
Multiple authentication methods can be chained. The order of entries in the authentication configuration determines the order of the authentication methods.
Default value: '30'
Navigate defines a menu entry, host- or service action.
The following parameters are available in the icingaweb2::config::navigation defined type:
Data type: String
Name of the menu entry, host- or service action.
Default value: $title
Data type: String
Owner of the navigation item.
Data type:
Enum[
'menu-item',
'host-action',
'service-action'
]Type of the navigation item.
Default value: 'menu-item'
Data type: Boolean
Creates a shared navigation item.
Default value: false
Data type: Optional[Array[String]]
List of users who have access to the element. Only valid if shared.
Default value: undef
Data type: Optional[Array[String]]
List of user groups that have access to the element. Only valid if shared.
Default value: undef
Data type: Optional[String]
The name of the a parent item. Only valid for menu entries.
Important: shared has to set if the parent entry is also shared.
Default value: undef
Data type: Enum['_blank', '_main']
The target to view the content.
Default value: '_main'
Data type: String
Url to the content of the navigation item.
Data type: Optional[String]
Location of an icon for the navigation item.
Default value: undef
Data type: Optional[String]
Filter to restrict the result of the content. Only valid for actions.
Default value: undef
Roles define a set of permissions that may be applied to users or groups.
icingaweb2::config::role{ 'linux-user':
groups => 'linuxer',
permissions => '*',
filters => {
'monitoring/filter/objects' => 'host_name=linux-*'
}
}The following parameters are available in the icingaweb2::config::role defined type:
Data type: String
Name of the role.
Default value: $title
Data type: Optional[String]
Comma separated list of users this role applies to.
Default value: undef
Data type: Optional[String]
Comma separated list of groups this role applies to.
Default value: undef
Data type: Optional[String]
The name of the role from which to inherit privileges.
Default value: undef
Data type: Optional[String]
Comma separated lsit of permissions. Each module may add it's own permissions. Examples are
- Allow everything: '*'
- Allow config access: 'config/*'
- Allow access do module icingadb: 'module/icingadb'
- Allow scheduling checks: 'icingadb/command/schedule-checks'
- Grant admin permissions: 'admin'
Default value: undef
Data type: Optional[String]
Refusals are used to deny access. So they’re the exact opposite of permissions.
Default value: undef
Data type: Optional[Boolean]
If set to true, owners of this role are not restricted in any way.
Default value: undef
Data type: Hash
Hash of filters. Modules may add new filter keys, some sample keys are:
- application/share/users
- application/share/groups
- icingadb/filter/objects A string value is expected for each used key. For example:
- icingadb/filter/objects = "host_name!=win"
Default value: {}
Manage settings in INI configuration files.
include icingawebeb2
icingaweb2::inisection { '/path/to/config.ini':
settings => {
'global' => {
'setting1' => 'value',
'setting2' => 'value',
},
},
}The following parameters are available in the icingaweb2::inisection defined type:
Data type: Stdlib::Absolutepath
Absolute path to the configuration file.
Data type: String[1]
Name of the target section. Settings are set under [$section_name]
Default value: $title
Data type: Hash
A hash of settings and their settings. Single settings may be set to absent.
Default value: {}
Data type: Variant[String[1], Integer[1]]
Ordering of the INI section within a file. Defaults to 01
Default value: '01'
Data type: Boolean
Specifies whether to overwrite the destination file if it already exists.
Default value: true
Download, enable and configure Icinga Web 2 modules.
- Note If you want to use
gitasinstall_method, the CLIgitcommand has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages.
$conf_dir = $icingaweb2::globals::conf_dir
$module_conf_dir = "${conf_dir}/modules/mymodule"
$settings = {
'section1' => {
'target' => "${module_conf_dir}/config1.ini",
'settings' => {
'setting1' => 'value1',
'setting2' => 'value2',
}
},
'section2' => {
'target' => "${module_conf_dir}/config2.ini",
'settings' => {
'setting3' => 'value3',
'setting4' => 'value4',
}
}
}The following parameters are available in the icingaweb2::module defined type:
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
Data type: String[1]
Name of the module.
Default value: $title
Data type: Stdlib::Absolutepath
Target directory of the module. Defaults to first item of module_path.
Default value: "${icingaweb2::globals::default_module_path}/${title}"
Data type: Enum['git', 'none', 'package']
Install methods are git, package and none is supported as installation method. Defaults to git
Default value: 'git'
Data type: Optional[String[1]]
The git repository. This setting is only valid in combination with the installation method git.
Default value: undef
Data type: String
Tag or branch of the git repository. This setting is only valid in combination with the installation method git.
Default value: 'master'
Data type: Optional[String[1]]
Package name of the module. This setting is only valid in combination with the installation method package.
Default value: undef
Data type: Hash[String[1], Any]
A hash with the module settings. Multiple configuration files with ini sections can be configured with this hash.
The module_name should be used as target directory for the configuration files.
Default value: {}
Create and remove Icinga Web 2 database resources.
icingaweb2::resource::database { 'mysql':
type => 'mysql',
host => 'localhost',
port => '3306',
database => 'icingaweb2',
username => 'icingaweb2',
password => 'supersecret',
}The following parameters are available in the icingaweb2::resource::database defined type:
resource_nametypehostportdatabaseusernamepasswordcharsetuse_tlstls_noverifytls_keytls_certtls_cacerttls_capathtls_cipher
Data type: String[1]
Name of the resources. Resources are referenced by their name in other configuration sections.
Default value: $title
Data type:
Enum['mysql', 'pgsql', 'mssql',
'oci', 'oracle', 'ibm', 'sqlite']Set database type to connect.
Data type: Optional[Stdlib::Host]
Connect to the database on the given host. For using unix domain sockets, specify 'localhost' for MySQL and the path to the unix domain socket and the directory for PostgreSQL.
Default value: undef
Data type: Optional[Stdlib::Port]
Port number to use.
Default value: undef
Data type: String[1]
The database to use.
Data type: Optional[String[1]]
The username to use when connecting to the server.
Default value: undef
Data type: Optional[Icinga::Secret]
The password to use when connecting the database.
Default value: undef
Data type: Optional[String[1]]
The character set to use for the database connection.
Default value: undef
Data type: Optional[Boolean]
Either enable or disable TLS encryption to the database. Other TLS parameters are only affected if this is set to 'true'.
Default value: undef
Data type: Optional[Boolean]
Disable validation of the server certificate.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the private key for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the certificate for client authentication. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
Location of the ca certificate. Only valid if tls is enabled.
Default value: undef
Data type: Optional[Stdlib::Absolutepath]
The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format. Only available for the mysql database.
Default value: undef
Data type: Optional[String[1]]
Chipher to use for the encrypted database connection.
Default value: undef
Create and remove Icinga Web 2 resources. Resources may be referenced in other configuration sections.
icingaweb2::resource::ldap{ 'my-ldap':
host => 'localhost',
port => 389,
root_dn => 'ou=users,dc=icinga,dc=com',
bind_dn => 'cn=icingaweb2,ou=users,dc=icinga,dc=com',
bind_pw => Sensitive('supersecret'),
}The following parameters are available in the icingaweb2::resource::ldap defined type:
Data type: String[1]
Name of the resources. Resources are referenced by their name in other configuration sections.
Default value: $title
Data type: String[1]
Connect to the database or ldap server on the given host. For using unix domain sockets, specify 'localhost' for MySQL and the path to the unix domain socket directory for PostgreSQL. When using the 'ldap' type you can also provide multiple hosts separated by a space.
Default value: 'localhost'
Data type: Optional[Stdlib::Port]
Port number to use.
Default value: undef
Data type: Optional[String[1]]
Root object of the tree, e.g. 'ou=people,dc=icinga,dc=com'.
Default value: undef
Data type: Optional[String[1]]
The user to use when connecting to the server.
Default value: undef
Data type: Optional[Icinga::Secret]
The password to use when connecting to the server.
Default value: undef
Data type: Enum['none', 'starttls', 'ldaps']
Type of encryption to use: none (default), starttls, ldaps.
Default value: 'none'
Data type: Integer
Timeout for the ldap connection.
Default value: 5
Type: Puppet Language
This function returns first parameter if set.
The icingaweb2::pick function.
Returns: Any One of the two parameters.
Data type: Any
Data type: Any
A strict type for the default admin role
Alias of
Struct[{
name => String,
users => Optional[Array[String[1]]],
groups => Optional[Array[String[1]]],
}]A type for setting import database schemata
Alias of Variant[Boolean, Enum['mariadb', 'mysql']]