Page MenuHomeSoftware Heritage

REFERENCE.md
No OneTemporary

REFERENCE.md

# Reference
<!-- DO NOT EDIT: This document was generated by Puppet Strings -->
## Table of Contents
### Classes
#### Public Classes
* [`icinga2`](#icinga2): This module installs and configures Icinga 2.
* [`icinga2::feature::api`](#icinga2featureapi): Configures the Icinga 2 feature api.
* [`icinga2::feature::checker`](#icinga2featurechecker): Configures the Icinga 2 feature checker.
* [`icinga2::feature::command`](#icinga2featurecommand): Configures the Icinga 2 feature command.
* [`icinga2::feature::compatlog`](#icinga2featurecompatlog): Configures the Icinga 2 feature compatlog.
* [`icinga2::feature::debuglog`](#icinga2featuredebuglog): Configures the Icinga 2 feature mainlog.
* [`icinga2::feature::elasticsearch`](#icinga2featureelasticsearch): Configures the Icinga 2 feature elasticsearch.
* [`icinga2::feature::gelf`](#icinga2featuregelf): Configures the Icinga 2 feature gelf.
* [`icinga2::feature::graphite`](#icinga2featuregraphite): Configures the Icinga 2 feature graphite.
* [`icinga2::feature::icingadb`](#icinga2featureicingadb): Configures the Icinga 2 feature icingadb.
* [`icinga2::feature::idomysql`](#icinga2featureidomysql): Installs and configures the Icinga 2 feature ido-mysql.
* [`icinga2::feature::idopgsql`](#icinga2featureidopgsql): Installs and configures the Icinga 2 feature ido-pgsql.
* [`icinga2::feature::influxdb`](#icinga2featureinfluxdb): Configures the Icinga 2 feature influxdb.
* [`icinga2::feature::livestatus`](#icinga2featurelivestatus): Configures the Icinga 2 feature livestatus.
* [`icinga2::feature::mainlog`](#icinga2featuremainlog): Configures the Icinga 2 feature mainlog.
* [`icinga2::feature::notification`](#icinga2featurenotification): Configures the Icinga 2 feature notification.
* [`icinga2::feature::opentsdb`](#icinga2featureopentsdb): Configures the Icinga 2 feature opentsdb.
* [`icinga2::feature::perfdata`](#icinga2featureperfdata): Configures the Icinga 2 feature perfdata.
* [`icinga2::feature::statusdata`](#icinga2featurestatusdata): Configures the Icinga 2 feature statusdata.
* [`icinga2::feature::syslog`](#icinga2featuresyslog): Configures the Icinga 2 feature syslog.
* [`icinga2::pki::ca`](#icinga2pkica): This class provides multiple ways to create the CA used by Icinga 2.
#### Private Classes
* `icinga2::config`: This class exists to manage general configuration files needed by Icinga 2 to run.
* `icinga2::globals`: This class loads the default parameters by doing a hiera lookup.
* `icinga2::install`: This class handles the installation of the Icinga 2 package.
On Windows only chocolatey is supported as installation source.
* `icinga2::service`: This class handles the Icinga 2 service. By default the service will
start on boot and will be restarted if stopped.
### Defined types
#### Public Defined types
* [`icinga2::config::fragment`](#icinga2configfragment): Set a code fragment in a target configuration file.
* [`icinga2::object::apiuser`](#icinga2objectapiuser): Manage Icinga 2 ApiUser objects.
* [`icinga2::object::checkcommand`](#icinga2objectcheckcommand): Manage Icinga 2 Host objects.
* [`icinga2::object::checkresultreader`](#icinga2objectcheckresultreader): Manage Icinga 2 CheckResultReader objects.
* [`icinga2::object::endpoint`](#icinga2objectendpoint): Manage Icinga 2 endpoint objects.
* [`icinga2::object::eventcommand`](#icinga2objecteventcommand): Manage Icinga 2 EventCommand objects.
* [`icinga2::object::host`](#icinga2objecthost): Manage Icinga 2 Host objects.
* [`icinga2::object::hostgroup`](#icinga2objecthostgroup): Manage Icinga 2 HostGroup objects.
* [`icinga2::object::notificationcommand`](#icinga2objectnotificationcommand): Manage Icinga 2 notificationcommand objects.
* [`icinga2::object::servicegroup`](#icinga2objectservicegroup): Manage Icinga 2 servicegroup objects.
* [`icinga2::object::timeperiod`](#icinga2objecttimeperiod): Manage Icinga 2 timeperiod objects.
* [`icinga2::object::user`](#icinga2objectuser): Manage Icinga 2 user objects.
* [`icinga2::object::usergroup`](#icinga2objectusergroup): Manage Icinga 2 usergroup objects.
* [`icinga2::object::zone`](#icinga2objectzone): Manage Icinga 2 zone objects.
#### Private Defined types
* `icinga2::feature`: Private define resource to used by this module only.
* `icinga2::object`: Define resource to used by this module only.
### Functions
* [`icinga2::icinga2_attributes`](#icinga2icinga2_attributes): Summarise what the function does here
* [`icinga2::icinga2_ticket_id`](#icinga2icinga2_ticket_id): Summarise what the function does here
* [`icinga2_attributes`](#icinga2_attributes): Wrapper for config parser
* [`icinga2_ticket_id`](#icinga2_ticket_id): Generates a auth ticket to get a certificate
### Data types
* [`Icinga2::CustomAttributes`](#icinga2customattributes): A type for the structure of custom attributes
* [`Icinga2::Fingerprint`](#icinga2fingerprint): Type for certificate fingerprints SHA1: 160 bit (20 byte) digest SHA256: 256 bit (32 byte) digest
* [`Icinga2::Interval`](#icinga2interval): A strict type for intervals
* [`Icinga2::LogFacility`](#icinga2logfacility): A strict type of syslog facilities
* [`Icinga2::LogSeverity`](#icinga2logseverity): A strict type for log levels
## Classes
### `icinga2`
This module installs and configures Icinga 2.
* **Note** Setting manage_packages to false means that all package aren't handeld by the module included the IDO packages.
#### Examples
##### Declare icinga2 with all defaults. Keep in mind that your operating system may not have Icinga 2 in its package repository.
```puppet
include ::icinga2
```
##### If you want to use the module icinga/puppet-icinga, e.g. to use the official Icinga Project repositories, enable the manage_repos parameter.
```puppet
class { 'icinga2':
manage_repos => true,
}
```
##### If you don't want to manage the Icinga 2 service with puppet, you can dissable this behaviour with the manage_service parameter. When set to false no service refreshes will be triggered.
```puppet
class { 'icinga2':
manage_service => false,
}
```
##### To manage the version of Icinga 2 binaries you can do it by disable package management:
```puppet
package { 'icinga2':
ensure => latest,
notifiy => Class['icinga2'],
}
class { '::icinga2':
manage_packages => false,
}
```
##### To set constants in etc/icinga2/constants.conf use the constants parameter and as value a hash, every key will be set as constant and assigned by it's value. Defaults can be overwritten.
```puppet
class { 'icinga2':
...
constants => {
'key1' => 'value1',
'key2' => 'value2',
'PluginContirbDir' => '/usr/local/nagios/plugins',
}
}
```
##### Enabling features with there defaults or loading parameters via Hiera:
```puppet
class { '::icinga2':
manage_repos => true,
features => ['checker', 'mainlog', 'command'],
}
```
##### The ITL contains several CheckCommand definitions to load, set these in the array of the plugins parameter, i.e. for a master or satellite do the following and disbale the load of the configuration in conf.d.
```puppet
class { 'icinga':
...
plugins => [ 'plugins', 'contrib-plugins', 'nscp', 'windows-plugins' ],
confd => false,
}
```
##### Sometimes it's necessary to cover very special configurations that you cannot handle with this module. In this case you can use the icinga2::config::file tag on your file resource. This module collects all file resource types with this tag and triggers a reload of Icinga 2 on a file change.
```puppet
include ::icinga2
file { '/etc/icinga2/conf.d/foo.conf':
ensure => file,
owner => icinga,
...
tag => 'icinga2::config::file',
...
}
```
##### To use a different directory for your configuration, create the directory as file resource with tag icinga2::config::file.
```puppet
file { '/etc/icinga2/local.d':
ensure => directory,
tag => 'icinga2::config::file'
}
class { 'icinga2':
...
confd => 'local.d',
}
```
#### Parameters
The following parameters are available in the `icinga2` class.
##### `ensure`
Data type: `Stdlib::Ensure::Service`
Manages if the service should be stopped or running.
Default value: `running`
##### `enable`
Data type: `Boolean`
If set to true the Icinga 2 service will start on boot.
Default value: ``true``
##### `manage_repo`
Data type: `Boolean`
Deprecated, use manage_repos.
Default value: ``false``
##### `manage_repos`
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``
##### `manage_package`
Data type: `Boolean`
Deprecated, use manage_packages.
Default value: ``false``
##### `manage_packages`
Data type: `Boolean`
If set to false packages aren't managed.
Default value: ``true``
##### `manage_selinux`
Data type: `Boolean`
If set to true the icinga selinux package is installed. Requires a `selinux_package_name` (icinga2::globals)
and `manage_packages` has to be set to true.
Default value: ``false``
##### `manage_service`
Data type: `Boolean`
If set to true the service is managed otherwise the service also
isn't restarted if a config file changed.
Default value: ``true``
##### `features`
Data type: `Array`
List of features to activate. Defaults to [checker, mainlog, notification].
##### `purge_features`
Data type: `Boolean`
Define if configuration files for features not managed by Puppet should be purged.
Default value: ``true``
##### `constants`
Data type: `Hash`
Hash of constants. Defaults are set in the params class. Your settings will be merged with the defaults.
Default value: `{}`
##### `plugins`
Data type: `Array`
A list of the ITL plugins to load. Defaults to [ 'plugins', 'plugins-contrib', 'windows-plugins', 'nscp' ].
##### `confd`
Data type: `Variant[Boolean, String]`
`conf.d` is the directory where Icinga 2 stores its object configuration by default. To disable it,
set this parameter to `false`. By default this parameter is `true`. It's also possible to assign your
own directory. This directory must be managed outside of this module as file resource
with tag icinga2::config::file.
Default value: ``true``
### `icinga2::feature::api`
Configures the Icinga 2 feature api.
#### Examples
##### Use the puppet certificates and key copy these files to the cert directory named to 'hostname.key', 'hostname.crt' and 'ca.crt' if the contant NodeName is set to 'hostname'.
```puppet
include ::icinga2::feature::api
```
##### To use your own certificates and key as file resources if the contant NodeName is set to fqdn (default) do:
```puppet
class { 'icinga2::feature::api':
pki => 'none',
}
File {
owner => 'icinga',
group => 'icinga',
}
file { "/var/lib/icinga2/certs/${::fqdn}.key":
ensure => file,
tag => 'icinga2::config::file',
source => "puppet:///modules/profiles/private_keys/${::fqdn}.key",
}
...
```
##### If you like to manage the certificates and the key as strings in base64 encoded format:
```puppet
class { 'icinga2::feature::api':
pki => 'none',
ssl_cacert => '-----BEGIN CERTIFICATE----- ...',
ssl_key => '-----BEGIN RSA PRIVATE KEY----- ...',
ssl_cert => '-----BEGIN CERTIFICATE----- ...',
}
```
##### Fine tune TLS settings
```puppet
class { '::icinga2::feature::api':
ssl_protocolmin => 'TLSv1.2',
ssl_cipher_list => 'HIGH:MEDIUM:!aNULL:!MD5:!RC4',
}
```
##### Transfer a CA certificate and key from an existing CA by using the file resource:
```puppet
include ::icinga2
file { '/var/lib/icinga2/ca/ca.crt':
source => '...',
tag => 'icinga2::config::file',
}
file { '/var/lib/icinga2/ca/ca.key':
source => '...',
tag => 'icinga2::config::file',
}
```
#### Parameters
The following parameters are available in the `icinga2::feature::api` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature api, absent disabled it.
Default value: `present`
##### `pki`
Data type: `Enum['ca', 'icinga2', 'none', 'puppet']`
Provides multiple sources for the certificate, key and ca.
- puppet: Copies the key, cert and CAcert from the Puppet ssl directory to the cert directory
/var/lib/icinga2/certs on Linux and C:/ProgramData/icinga2/var/lib/icinga2/certs on Windows.
- icinga2: Uses the icinga2 CLI to generate a Certificate Request and Key to obtain a signed
Certificate from 'ca_host' using the icinga2 ticket mechanism.
In case the 'ticket_salt' has been configured the ticket_id will be generated
by the module in a custom function that imitates the icinga ticket generation.
The 'ticket_id' parameter can be used to directly set an ticket_id.
- none: Does nothing and you either have to manage the files yourself as file resources
or use the ssl_key, ssl_cert, ssl_cacert parameters.
Default value: `'icinga2'`
##### `ssl_key`
Data type: `Optional[Stdlib::Base64]`
The private key in a base64 encoded string to store in cert directory. This parameter
requires pki to be set to 'none'.
Default value: ``undef``
##### `ssl_cert`
Data type: `Optional[Stdlib::Base64]`
The certificate in a base64 encoded string to store in cert directory This parameter
requires pki to be set to 'none'.
Default value: ``undef``
##### `ssl_cacert`
Data type: `Optional[Stdlib::Base64]`
The CA root certificate in a base64 encoded string to store in cert directory. This parameter
requires pki to be set to 'none'.
Default value: ``undef``
##### `ssl_crl`
Data type: `Optional[Stdlib::Absolutepath]`
Optional location of the certificate revocation list.
Default value: ``undef``
##### `accept_config`
Data type: `Optional[Boolean]`
Accept zone configuration.
Default value: ``undef``
##### `accept_commands`
Data type: `Optional[Boolean]`
Accept remote commands.
Default value: ``undef``
##### `max_anonymous_clients`
Data type: `Optional[Integer[0]]`
Limit the number of anonymous client connections (not configured endpoints and signing requests).
Default value: ``undef``
##### `ca_host`
Data type: `Optional[Stdlib::Host]`
This host will be connected to request the certificate. Set this if you use the icinga2 pki.
Default value: ``undef``
##### `ca_port`
Data type: `Stdlib::Port::Unprivileged`
Port of the 'ca_host'.
Default value: `5665`
##### `fingerprint`
Data type: `Optional[Icinga2::Fingerprint]`
Fingerprint of the CA host certificate for validation. Requires pki is set to `icinga2`.
You can get the fingerprint via 'openssl x509 -noout -fingerprint -sha256 -inform pem -in [certificate-file.crt]'
on your CA host. (Icinga2 versions before 2.12.0 require '-sha1' as digest algorithm.)
Default value: ``undef``
##### `ticket_salt`
Data type: `String`
Salt to use for ticket generation. The salt is stored to api.conf if none or ca is chosen for pki.
Defaults to constant TicketSalt. Keep in mind this parameter is parsed so please use only alpha numric
characters as salt or a constant.
Default value: `'TicketSalt'`
##### `ticket_id`
Data type: `Optional[String]`
If a ticket_id is given it will be used instead of generating an ticket_id.
The ticket_id will be used only when requesting a certificate from the ca_host
in case the pki is set to 'icinga2'.
Default value: ``undef``
##### `endpoints`
Data type: `Hash[String, Hash]`
Hash to configure endpoint objects. `NodeName` is a icnga2 constant.
Default value: `{ 'NodeName' => {} }`
##### `zones`
Data type: `Hash[String, Hash]`
Hash to configure zone objects. `ZoneName` and `NodeName` are icinga2 constants.
Default value: `{ 'ZoneName' => { endpoints => [ 'NodeName' ] } }`
##### `ssl_protocolmin`
Data type: `Optional[Enum['TLSv1', 'TLSv1.1', 'TLSv1.2']]`
Minimal TLS version to require.
Default value: ``undef``
##### `ssl_handshake_timeout`
Data type: `Optional[Icinga2::Interval]`
TLS Handshake timeout.
Default value: ``undef``
##### `ssl_cipher_list`
Data type: `Optional[String]`
List of allowed TLS ciphers, to finetune encryption.
Default value: ``undef``
##### `bind_host`
Data type: `Optional[Stdlib::Host]`
The IP address the api listener will be bound to.
Default value: ``undef``
##### `bind_port`
Data type: `Optional[Stdlib::Port::Unprivileged]`
The port the api listener will be bound to.
Default value: ``undef``
##### `access_control_allow_origin`
Data type: `Optional[Array[String]]`
Specifies an array of origin URLs that may access the API.
Default value: ``undef``
##### `access_control_allow_credentials`
Data type: `Optional[Boolean]`
Indicates whether or not the actual request can be made using credentials.
Default value: ``undef``
##### `access_control_allow_headers`
Data type: `Optional[String]`
Used in response to a preflight request to indicate which HTTP headers can be used when making the actual request.
Default value: ``undef``
##### `access_control_allow_methods`
Data type: `Optional[Array[Enum['GET', 'POST', 'PUT', 'DELETE']]]`
Used in response to a preflight request to indicate which HTTP methods can be used when making the actual request.
Default value: ``undef``
##### `environment`
Data type: `Optional[String]`
Used as suffix in TLS SNI extension name; default from constant ApiEnvironment, which is empty.
Default value: ``undef``
### `icinga2::feature::checker`
Configures the Icinga 2 feature checker.
* **Note** Deprecated in Icinga 2.11, replaced by global constant
MaxConcurrentChecks which will be set if you still use concurrent_checks.
#### Parameters
The following parameters are available in the `icinga2::feature::checker` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature checker, absent disabled it.
Default value: `present`
##### `concurrent_checks`
Data type: `Optional[Integer[1]]`
The maximum number of concurrent checks.
Default value: ``undef``
### `icinga2::feature::command`
Configures the Icinga 2 feature command.
#### Parameters
The following parameters are available in the `icinga2::feature::command` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present to enable the feature command, absent to disabled it.
Default value: `present`
##### `command_path`
Data type: `Optional[Stdlib::Absolutepath]`
Absolute path to the command pipe.
Default value: ``undef``
### `icinga2::feature::compatlog`
Configures the Icinga 2 feature compatlog.
#### Parameters
The following parameters are available in the `icinga2::feature::compatlog` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature compatlog, absent disabled it.
Default value: `present`
##### `log_dir`
Data type: `Optional[Stdlib::Absolutepath]`
Absolute path to the log directory.
Default value: ``undef``
##### `rotation_method`
Data type: `Optional[Enum['DAILY', 'HOURLY', 'MONTHLY', 'WEEKLY']]`
Sets how often should the log file be rotated.
Default value: ``undef``
### `icinga2::feature::debuglog`
Configures the Icinga 2 feature mainlog.
#### Parameters
The following parameters are available in the `icinga2::feature::debuglog` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature mainlog, absent disables it.
Default value: `present`
##### `path`
Data type: `Stdlib::Absolutepath`
Absolute path to the log file.
Default value: `"${::icinga2::globals::log_dir}/debug.log"`
### `icinga2::feature::elasticsearch`
Configures the Icinga 2 feature elasticsearch.
#### Examples
#####
```puppet
class { 'icinga2::feature::elasticsearch':
host => "10.10.0.15",
index => "icinga2"
}
```
#### Parameters
The following parameters are available in the `icinga2::feature::elasticsearch` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature elasticsearch, absent disables it.
Default value: `present`
##### `host`
Data type: `Optional[Stdlib::Host]`
Elasticsearch host address.
Default value: ``undef``
##### `port`
Data type: `Optional[Stdlib::Port::Unprivileged]`
Elasticsearch HTTP port.
Default value: ``undef``
##### `index`
Data type: `Optional[String]`
Elasticsearch index name.
Default value: ``undef``
##### `username`
Data type: `Optional[String]`
Elasticsearch user name.
Default value: ``undef``
##### `password`
Data type: `Optional[String]`
Elasticsearch user password. The password parameter isn't parsed anymore.
Default value: ``undef``
##### `enable_ssl`
Data type: `Optional[Boolean]`
Either enable or disable SSL. Other SSL parameters are only affected if this is set to 'true'.
Default value: ``undef``
##### `ssl_key_path`
Data type: `Optional[Stdlib::Absolutepath]`
Location of the private key.
Default value: ``undef``
##### `ssl_cert_path`
Data type: `Optional[Stdlib::Absolutepath]`
Location of the certificate.
Default value: ``undef``
##### `ssl_cacert_path`
Data type: `Optional[Stdlib::Absolutepath]`
Location of the CA certificate.
Default value: ``undef``
##### `ssl_key`
Data type: `Optional[Stdlib::Base64]`
The private key in a base64 encoded string to store in spicified ssl_key_path file.
Default value: ``undef``
##### `ssl_cert`
Data type: `Optional[Stdlib::Base64]`
The certificate in a base64 encoded to store in spicified ssl_cert_path file.
Default value: ``undef``
##### `ssl_cacert`
Data type: `Optional[Stdlib::Base64]`
The CA root certificate in a base64 encoded string to store in spicified ssl_cacert_path file.
Default value: ``undef``
##### `enable_send_perfdata`
Data type: `Optional[Boolean]`
Whether to send check performance data metrics.
Default value: ``undef``
##### `flush_interval`
Data type: `Optional[Icinga2::Interval]`
How long to buffer data points before transferring to Elasticsearch.
Default value: ``undef``
##### `flush_threshold`
Data type: `Optional[Integer]`
How many data points to buffer before forcing a transfer to Elasticsearch.
Default value: ``undef``
##### `enable_ha`
Data type: `Optional[Boolean]`
Enable the high availability functionality. Only valid in a cluster setup.
Default value: ``undef``
### `icinga2::feature::gelf`
Configures the Icinga 2 feature gelf.
#### Parameters
The following parameters are available in the `icinga2::feature::gelf` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature gelf, absent disables it.
Default value: `present`
##### `host`
Data type: `Optional[Stdlib::Host]`
GELF receiver host address.
Default value: ``undef``
##### `port`
Data type: `Optional[Stdlib::Port::Unprivileged]`
GELF receiver port.
Default value: ``undef``
##### `source`
Data type: `Optional[String]`
Source name for this instance.
Default value: ``undef``
##### `enable_send_perfdata`
Data type: `Optional[Boolean]`
Enable performance data for 'CHECK RESULT' events.
Default value: ``undef``
##### `enable_ha`
Data type: `Optional[Boolean]`
Enable the high availability functionality. Only valid in a cluster setup.
Default value: ``undef``
### `icinga2::feature::graphite`
Configures the Icinga 2 feature graphite.
#### Examples
#####
```puppet
class { '::icinga2::feature::graphite':
host => '10.10.0.15',
port => 2003,
enable_send_thresholds => true,
enable_send_metadata => true,
}
```
#### Parameters
The following parameters are available in the `icinga2::feature::graphite` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature graphite, absent disabled it.
Default value: `present`
##### `host`
Data type: `Optional[Stdlib::Host]`
Graphite Carbon host address.
Default value: ``undef``
##### `port`
Data type: `Optional[Stdlib::Port::Unprivileged]`
Graphite Carbon port.
Default value: ``undef``
##### `host_name_template`
Data type: `Optional[String]`
Template for metric path of hosts.
Default value: ``undef``
##### `service_name_template`
Data type: `Optional[String]`
Template for metric path of services.
Default value: ``undef``
##### `enable_send_thresholds`
Data type: `Optional[Boolean]`
Default value: ``undef``
##### `enable_send_metadata`
Data type: `Optional[Boolean]`
Default value: ``undef``
##### `enable_ha`
Data type: `Optional[Boolean]`
Enable the high availability functionality. Only valid in a cluster setup.
Default value: ``undef``
### `icinga2::feature::icingadb`
Configures the Icinga 2 feature icingadb.
#### Parameters
The following parameters are available in the `icinga2::feature::icingadb` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present, enables the feature icingadb, absent disabled it.
Default value: `present`
##### `host`
Data type: `Optional[Stdlib::Host]`
IcingaDB Redis host address.
Default value: ``undef``
##### `port`
Data type: `Optional[Stdlib::Port::Unprivileged]`
IcingaDB Redis port.
Default value: ``undef``
##### `socket_path`
Data type: `Optional[Stdlib::Absolutepath]`
IcingaDB Redis unix sockt. Can be used instead of host and port attributes.
Default value: ``undef``
##### `password`
Data type: `Optional[String]`
IcingaDB Redis password. The password parameter isn't parsed anymore.
Default value: ``undef``
### `icinga2::feature::idomysql`
Installs and configures the Icinga 2 feature ido-mysql.
#### Examples
##### The ido-mysql featue requires an existing database and a user with permissions. This example uses the [puppetlabs/mysql](https://forge.puppet.com/puppetlabs/mysql) module.
```puppet
include mysql::server
mysql::db { 'icinga2':
user => 'icinga2',
password => 'supersecret',
host => 'localhost',
grant => ['SELECT', 'INSERT', 'UPDATE', 'DELETE', 'DROP', 'CREATE VIEW', 'CREATE', 'INDEX', 'EXECUTE', 'ALTER'],
}
class{ 'icinga2::feature::idomysql':
user => "icinga2",
password => "supersecret",
database => "icinga2",
import_schema => true,
require => Mysql::Db['icinga2']
}
```
#### Parameters
The following parameters are available in the `icinga2::feature::idomysql` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature ido-mysql, absent disables it.
Default value: `present`
##### `host`
Data type: `Stdlib::Host`
MySQL database host address.
Default value: `'localhost'`
##### `port`
Data type: `Optional[Stdlib::Port::Unprivileged]`
MySQL database port.
Default value: ``undef``
##### `socket_path`
Data type: `Optional[Stdlib::Absolutepath]`
MySQL socket path.
Default value: ``undef``
##### `user`
Data type: `String`
MySQL database user with read/write permission to the icinga database.
Default value: `'icinga'`
##### `password`
Data type: `String`
MySQL database user's password. The password parameter isn't parsed anymore.
##### `database`
Data type: `String`
MySQL database name.
Default value: `'icinga'`
##### `enable_ssl`
Data type: `Boolean`
Either enable or disable SSL/TLS. Other SSL parameters are only affected if this is set to 'true'.
Default value: ``false``
##### `ssl_key_path`
Data type: `Optional[Stdlib::Absolutepath]`
Location of the private key. Only valid if ssl is enabled.
Default value: ``undef``
##### `ssl_cert_path`
Data type: `Optional[Stdlib::Absolutepath]`
Location of the certificate. Only valid if ssl is enabled.
Default value: ``undef``
##### `ssl_cacert_path`
Data type: `Optional[Stdlib::Absolutepath]`
Location of the CA certificate. Only valid if ssl is enabled.
Default value: ``undef``
##### `ssl_key`
Data type: `Optional[Stdlib::Base64]`
The private key in a base64 encoded string to store in spicified ssl_key_path file.
Only valid if ssl is enabled.
Default value: ``undef``
##### `ssl_cert`
Data type: `Optional[Stdlib::Base64]`
The certificate in a base64 encoded string to store in spicified ssl_cert_path file.
Only valid if ssl is enabled.
Default value: ``undef``
##### `ssl_cacert`
Data type: `Optional[Stdlib::Base64]`
The CA root certificate in a base64 encoded string to store in spicified ssl_cacert_path file.
Only valid if ssl is enabled.
Default value: ``undef``
##### `ssl_capath`
Data type: `Optional[Stdlib::Absolutepath]`
MySQL SSL trusted SSL CA certificates in PEM format directory path. Only valid if ssl is enabled.
Default value: ``undef``
##### `ssl_cipher`
Data type: `Optional[String]`
MySQL SSL list of allowed ciphers. Only valid if ssl is enabled.
Default value: ``undef``
##### `table_prefix`
Data type: `Optional[String]`
MySQL database table prefix.
Default value: ``undef``
##### `instance_name`
Data type: `Optional[String]`
Unique identifier for the local Icinga 2 instance.
Default value: ``undef``
##### `instance_description`
Data type: `Optional[String]`
Description for the Icinga 2 instance.
Default value: ``undef``
##### `enable_ha`
Data type: `Optional[Boolean]`
Enable the high availability functionality. Only valid in a cluster setup.
Default value: ``undef``
##### `failover_timeout`
Data type: `Optional[Icinga2::Interval]`
Set the failover timeout in a HA cluster. Must not be lower than 60s.
Default value: ``undef``
##### `cleanup`
Data type: `Optional[Hash[String,Icinga2::Interval]]`
Hash with items for historical table cleanup.
Default value: ``undef``
##### `categories`
Data type: `Optional[Array]`
Array of information types that should be written to the database.
Default value: ``undef``
##### `import_schema`
Data type: `Boolean`
Whether to import the MySQL schema or not.
Default value: ``false``
### `icinga2::feature::idopgsql`
Installs and configures the Icinga 2 feature ido-pgsql.
#### Examples
##### The ido-pgsql featue requires an existing database and a user with permissions. This example uses the [puppetlab/postgresql](https://forge.puppet.com/puppetlabs/postgresql) module.
```puppet
include icinga2
include postgresql::server
postgresql::server::db { 'icinga2':
user => 'icinga2',
password => postgresql_password('icinga2', 'supersecret'),
}
class{ 'icinga2::feature::idopgsql':
user => 'icinga2',
password => 'supersecret',
database => 'icinga2',
import_schema => true,
require => Postgresql::Server::Db['icinga2']
}
```
#### Parameters
The following parameters are available in the `icinga2::feature::idopgsql` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature ido-pgsql, absent disables it.
Default value: `present`
##### `host`
Data type: `Stdlib::Host`
PostgreSQL database host address.
Default value: `'localhost'`
##### `port`
Data type: `Stdlib::Port::Unprivileged`
PostgreSQL database port.
Default value: `5432`
##### `user`
Data type: `String`
PostgreSQL database user with read/write permission to the icinga database.
Default value: `'icinga'`
##### `password`
Data type: `String`
PostgreSQL database user's password. The password parameter isn't parsed anymore.
##### `database`
Data type: `String`
PostgreSQL database name.
Default value: `'icinga'`
##### `table_prefix`
Data type: `Optional[String]`
PostgreSQL database table prefix.
Default value: ``undef``
##### `instance_name`
Data type: `Optional[String]`
Unique identifier for the local Icinga 2 instance.
Default value: ``undef``
##### `instance_description`
Data type: `Optional[String]`
Description of the Icinga 2 instance.
Default value: ``undef``
##### `enable_ha`
Data type: `Optional[Boolean]`
Enable the high availability functionality. Only valid in a cluster setup.
Default value: ``undef``
##### `failover_timeout`
Data type: `Optional[Icinga2::Interval]`
Set the failover timeout in a HA cluster. Must not be lower than 60s.
Default value: ``undef``
##### `cleanup`
Data type: `Optional[Hash]`
Hash with items for historical table cleanup.
Default value: ``undef``
##### `categories`
Data type: `Optional[Array]`
Array of information types that should be written to the database.
Default value: ``undef``
##### `import_schema`
Data type: `Boolean`
Whether to import the PostgreSQL schema or not.
Default value: ``false``
### `icinga2::feature::influxdb`
Configures the Icinga 2 feature influxdb.
#### Examples
#####
```puppet
class { 'icinga2::feature::influxdb':
host => "10.10.0.15",
username => "icinga2",
password => "supersecret",
database => "icinga2"
}
```
#### Parameters
The following parameters are available in the `icinga2::feature::influxdb` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature influxdb, absent disables it.
Default value: `present`
##### `host`
Data type: `Optional[Stdlib::Host]`
InfluxDB host address.
Default value: ``undef``
##### `port`
Data type: `Optional[Stdlib::Port]`
InfluxDB HTTP port.
Default value: ``undef``
##### `database`
Data type: `Optional[String]`
InfluxDB database name.
Default value: ``undef``
##### `username`
Data type: `Optional[String]`
InfluxDB user name.
Default value: ``undef``
##### `password`
Data type: `Optional[String]`
InfluxDB user password. The password parameter isn't parsed anymore.
Default value: ``undef``
##### `enable_ssl`
Data type: `Optional[Boolean]`
Either enable or disable SSL. Other SSL parameters are only affected if this is set to 'true'.
Default value: ``undef``
##### `ssl_key_path`
Data type: `Optional[Stdlib::Absolutepath]`
Location of the private key.
Default value: ``undef``
##### `ssl_cert_path`
Data type: `Optional[Stdlib::Absolutepath]`
Location of the certificate.
Default value: ``undef``
##### `ssl_cacert_path`
Data type: `Optional[Stdlib::Absolutepath]`
Location of the CA certificate.
Default value: ``undef``
##### `ssl_key`
Data type: `Optional[Stdlib::Base64]`
The private key in a base64 encoded string to store in ssl_key_path file.
Default value: ``undef``
##### `ssl_cert`
Data type: `Optional[Stdlib::Base64]`
The certificate in a base64 encoded string to store in ssl_cert_path file.
Default value: ``undef``
##### `ssl_cacert`
Data type: `Optional[Stdlib::Base64]`
The CA root certificate in a base64 encoded to store in ssl_cacert_path file.
Default value: ``undef``
##### `host_measurement`
Data type: `String`
The value of this is used for the measurement setting in host_template.
Default value: `'$host.check_command$'`
##### `host_tags`
Data type: `Hash`
Tags defined in this hash will be set in the host_template.
Default value: `{ hostname => '$host.name$' }`
##### `service_measurement`
Data type: `String`
The value of this is used for the measurement setting in host_template.
Default value: `'$service.check_command$'`
##### `service_tags`
Data type: `Hash`
Tags defined in this hash will be set in the service_template.
Default value: `{ hostname => '$host.name$', service => '$service.name$' }`
##### `enable_send_thresholds`
Data type: `Optional[Boolean]`
Whether to send warn, crit, min & max tagged data.
Default value: ``undef``
##### `enable_send_metadata`
Data type: `Optional[Boolean]`
Whether to send check metadata e.g. states, execution time, latency etc.
Default value: ``undef``
##### `flush_interval`
Data type: `Optional[Icinga2::Interval]`
How long to buffer data points before transfering to InfluxDB.
Default value: ``undef``
##### `flush_threshold`
Data type: `Optional[Integer[1]]`
How many data points to buffer before forcing a transfer to InfluxDB.
Default value: ``undef``
##### `enable_ha`
Data type: `Optional[Boolean]`
Enable the high availability functionality. Only valid in a cluster setup.
Default value: ``undef``
### `icinga2::feature::livestatus`
Configures the Icinga 2 feature livestatus.
#### Parameters
The following parameters are available in the `icinga2::feature::livestatus` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature livestatus, absent disables it.
Default value: `present`
##### `socket_type`
Data type: `Optional[Enum['tcp', 'unix']]`
Specifies the socket type. Can be either 'tcp' or 'unix'.
Default value: ``undef``
##### `bind_host`
Data type: `Optional[Stdlib::Host]`
IP address to listen for connections. Only valid when socket_type is 'tcp'.
Default value: ``undef``
##### `bind_port`
Data type: `Optional[Stdlib::Port::Unprivileged]`
Port to listen for connections. Only valid when socket_type is 'tcp'.
Default value: ``undef``
##### `socket_path`
Data type: `Optional[Stdlib::Absolutepath]`
Specifies the path to the UNIX socket file. Only valid when socket_type is 'unix'.
Default value: ``undef``
##### `compat_log_path`
Data type: `Optional[Stdlib::Absolutepath]`
Required for historical table queries. Requires CompatLogger feature to be enabled.
Default value: ``undef``
### `icinga2::feature::mainlog`
Configures the Icinga 2 feature mainlog.
#### Parameters
The following parameters are available in the `icinga2::feature::mainlog` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to 'present' enables the feature mainlog, 'absent' disabled it.
Default value: `present`
##### `severity`
Data type: `Icinga2::LogSeverity`
You can set the log severity to 'information', 'notice', 'warning' or 'debug'.
Default value: `'information'`
##### `path`
Data type: `Stdlib::Absolutepath`
Absolute path to the log file.
Default value: `"${::icinga2::globals::log_dir}/icinga2.log"`
### `icinga2::feature::notification`
Configures the Icinga 2 feature notification.
#### Parameters
The following parameters are available in the `icinga2::feature::notification` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature notification, absent disabled it.
Default value: `present`
##### `enable_ha`
Data type: `Optional[Boolean]`
Notifications are load-balanced amongst all nodes in a zone.
Default value: ``undef``
### `icinga2::feature::opentsdb`
Configures the Icinga 2 feature opentsdb.
#### Parameters
The following parameters are available in the `icinga2::feature::opentsdb` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature opentsdb, absent disables it.
Default value: `present`
##### `host`
Data type: `Optional[Stdlib::Host]`
OpenTSDB host address.
Default value: ``undef``
##### `port`
Data type: `Optional[Stdlib::Port::Unprivileged]`
OpenTSDB port.
Default value: ``undef``
##### `enable_ha`
Data type: `Optional[Boolean]`
Enable the high availability functionality. Only valid in a cluster setup.
Default value: ``undef``
### `icinga2::feature::perfdata`
Configures the Icinga 2 feature perfdata.
#### Parameters
The following parameters are available in the `icinga2::feature::perfdata` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature perfdata, absent disables it.
Default value: `present`
##### `host_perfdata_path`
Data type: `Optional[Stdlib::Absolutepath]`
Absolute path to the perfdata file for hosts.
Default value: ``undef``
##### `service_perfdata_path`
Data type: `Optional[Stdlib::Absolutepath]`
Absolute path to the perfdata file for services.
Default value: ``undef``
##### `host_temp_path`
Data type: `Optional[Stdlib::Absolutepath]`
Path to the temporary host file.
Default value: ``undef``
##### `service_temp_path`
Data type: `Optional[Stdlib::Absolutepath]`
Path to the temporary service file.
Default value: ``undef``
##### `host_format_template`
Data type: `Optional[String]`
Host Format template for the performance data file.
Default value: ``undef``
##### `service_format_template`
Data type: `Optional[String]`
Service Format template for the performance data file.
Default value: ``undef``
##### `rotation_interval`
Data type: `Optional[Icinga2::Interval]`
Rotation interval for the files specified in {host,service}_perfdata_path. Can be written in minutes or seconds,
i.e. 1m or 15s.
Default value: ``undef``
##### `enable_ha`
Data type: `Optional[Boolean]`
Enable the high availability functionality. Only valid in a cluster setup.
Default value: ``undef``
### `icinga2::feature::statusdata`
Configures the Icinga 2 feature statusdata.
#### Parameters
The following parameters are available in the `icinga2::feature::statusdata` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature statusdata, absent disables it.
Default value: `present`
##### `status_path`
Data type: `Optional[Stdlib::Absolutepath]`
Absolute path to the status.dat file.
Default value: ``undef``
##### `objects_path`
Data type: `Optional[Stdlib::Absolutepath]`
Absolute path to the object.cache file.
Default value: ``undef``
##### `update_interval`
Data type: `Optional[Icinga2::Interval]`
Interval in seconds to update both status files. You can also specify
it in minutes with the letter m or in seconds with s.
Default value: ``undef``
### `icinga2::feature::syslog`
Configures the Icinga 2 feature syslog.
#### Parameters
The following parameters are available in the `icinga2::feature::syslog` class.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the feature syslog, absent disables it.
Default value: `present`
##### `severity`
Data type: `Optional[Icinga2::LogSeverity]`
You can choose the log severity between information, notice, warning or debug.
Default value: ``undef``
##### `facility`
Data type: `Optional[Icinga2::LogFacility]`
Defines the facility to use for syslog entries. This can be a facility constant
like FacilityDaemon.
Default value: ``undef``
### `icinga2::pki::ca`
This class provides multiple ways to create the CA used by Icinga 2.
#### Examples
##### Let Icinga 2 generate a CA for you:
```puppet
include icinga2
include icinga2::pki::ca
```
##### Set the content of CA certificate and key:
```puppet
include icinga2
class { 'icinga2::pki::ca':
ca_cert => '-----BEGIN CERTIFICATE----- ...',
ca_key => '-----BEGIN RSA PRIVATE KEY----- ...',
}
```
#### Parameters
The following parameters are available in the `icinga2::pki::ca` class.
##### `ca_cert`
Data type: `Optional[String]`
Content of the CA certificate. If this is unset, a certificate will be generated with the
Icinga 2 CLI.
Default value: ``undef``
##### `ca_key`
Data type: `Optional[String]`
Content of the CA key. If this is unset, a key will be generated with the Icinga 2 CLI.
Default value: ``undef``
## Defined types
### `icinga2::config::fragment`
Set a code fragment in a target configuration file.
#### Examples
##### To create a custom configuration add content to a specified target at the position you set in the order parameter. You can use also templates to add content.
```puppet
include ::icinga2
icinga2::object::service { 'load':
display_name => 'Load',
apply => true,
check_command => 'load',
assign => ['vars.os == Linux'],
target => '/etc/icinga2/conf.d/service_load.conf',
order => 30,
}
icinga2::config::fragment { 'load-function':
target => '/etc/icinga2/conf.d/service_load.conf',
order => 10,
content => 'vars.load_wload1 = {{
if (get_time_period("backup").is_inside) {
return 20
} else {
return 5
}
}}',
}
```
#### Parameters
The following parameters are available in the `icinga2::config::fragment` defined type.
##### `content`
Data type: `String`
Content to insert in file specified in target.
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store in this fragment. File will be declared the
first time.
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted in alpha numeric order. Defaults to `00`.
Default value: `'00'`
##### `code_name`
Data type: `String`
Default value: `$title`
### `icinga2::object::apiuser`
Manage Icinga 2 ApiUser objects.
#### Examples
##### Create an user with full permissions:
```puppet
::icinga2::object::apiuser { 'director':
ensure => present,
password => 'Eih5Weefoo2oa8sh',
permissions => [ '*' ],
target => '/etc/icinga2/conf.d/api-users.conf',
}
```
##### Create an user with restricted permissions for Icinga Web 2:
```puppet
::icinga2::object::apiuser { 'icingaweb2':
ensure => present,
password => '12e2ef553068b519',
permissions => [ 'status/query', 'actions/*', 'objects/modify/*', 'objects/query/*' ],
target => '/etc/icinga2/conf.d/api-users.conf',
}
```
##### Create user who's only allowed to query hosts and services:
```puppet
::icinga2::object::apiuser { 'read':
ensure => present,
password => 'read',
permissions => [
{
permission => 'objects/query/Host',
filter => '{{ regex("^Linux", host.vars.os) }}'
},
{
permission => 'objects/query/Service',
filter => '{{ regex("^Linux", host.vars.os) }}'
},
],
target => '/etc/icinga2/conf.d/api-users.conf',
}
```
#### Parameters
The following parameters are available in the `icinga2::object::apiuser` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `apiuser_name`
Data type: `String`
Set the name of the apiuser object.
Default value: `$title`
##### `password`
Data type: `Optional[String]`
Password string. The password parameter isn't parsed anymore.
Default value: ``undef``
##### `client_cn`
Data type: `Optional[String]`
Optional. Client Common Name (CN).
Default value: ``undef``
##### `permissions`
Data type: `Optional[Array]`
Array of permissions. Either as string or dictionary with the keys permission
and filter. The latter must be specified as function.
Default value: ``undef``
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store in this object. File will be declared at the
first time.
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted alpha numeric.
Default value: `30`
### `icinga2::object::checkcommand`
Manage Icinga 2 Host objects.
#### Parameters
The following parameters are available in the `icinga2::object::checkcommand` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `checkcommand_name`
Data type: `String`
Title of the CheckCommand object.
Default value: `$title`
##### `import`
Data type: `Array`
Sorted List of templates to include.
Default value: `[]`
##### `command`
Data type: `Optional[Variant[Array, String]]`
The command. This can either be an array of individual command arguments.
Alternatively a string can be specified in which case the shell interpreter (usually /bin/sh) takes care of parsing the command.
When using the "arguments" attribute this must be an array. Can be specified as function for advanced implementations.
Default value: ``undef``
##### `env`
Data type: `Optional[Hash]`
A dictionary of macros which should be exported as environment variables prior to executing the command.
Default value: ``undef``
##### `vars`
Data type: `Optional[Icinga2::CustomAttributes]`
A dictionary containing custom attributes that are specific to this service,
a string to do operations on this dictionary or an array for multiple use
of custom attributes.
Default value: ``undef``
##### `timeout`
Data type: `Optional[Icinga2::Interval]`
The command timeout in seconds.
Default value: ``undef``
##### `arguments`
Data type: `Optional[Variant[Hash, String]]`
A dictionary of command arguments.
Default value: ``undef``
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store in this object. File will be declared the
first time.
##### `template`
Data type: `Boolean`
Set to true creates a template instead of an object.
Default value: ``false``
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted alpha numeric.
Default value: `15`
### `icinga2::object::checkresultreader`
Manage Icinga 2 CheckResultReader objects.
#### Parameters
The following parameters are available in the `icinga2::object::checkresultreader` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `checkresultreader_name`
Data type: `String`
Set the Icinga 2 name of the ceckresultreader object.
Default value: `$title`
##### `spool_dir`
Data type: `Optional[Stdlib::Absolutepath]`
The directory which contains the check result files.
Default value: ``undef``
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store in this object. File will be declared the
first time.
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted alpha numeric.
Default value: `'05'`
### `icinga2::object::endpoint`
Manage Icinga 2 endpoint objects.
#### Parameters
The following parameters are available in the `icinga2::object::endpoint` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `endpoint_name`
Data type: `String`
Set the Icinga 2 name of the endpoint object.
Default value: `$title`
##### `host`
Data type: `Optional[Stdlib::Host]`
Optional. The IP address of the remote Icinga 2 instance.
Default value: ``undef``
##### `port`
Data type: `Optional[Stdlib::Port::Unprivileged]`
The service name/port of the remote Icinga 2 instance.
Default value: ``undef``
##### `log_duration`
Data type: `Optional[Icinga2::Interval]`
Duration for keeping replay logs on connection loss.
Attribute is specified in seconds. If log_duration is set to 0, replaying logs is disabled.
You could also specify the value in human readable format like 10m for 10 minutes
or 1h for one hour.
Default value: ``undef``
##### `target`
Data type: `Optional[Stdlib::Absolutepath]`
Destination config file to store in this object. File will be declared at the
first time.
Default value: ``undef``
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted alpha numeric.
Default value: `40`
### `icinga2::object::eventcommand`
Manage Icinga 2 EventCommand objects.
#### Parameters
The following parameters are available in the `icinga2::object::eventcommand` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `eventcommand_name`
Data type: `String`
Set the Icinga 2 name of the eventcommand object.
Default value: `$title`
##### `command`
Data type: `Optional[Variant[Array, String]]`
The command. This can either be an array of individual command arguments.
Alternatively a string can be specified in which case the shell interpreter (usually /bin/sh)
takes care of parsing the command.
Default value: ``undef``
##### `env`
Data type: `Optional[Hash]`
A dictionary of macros which should be exported as environment variables prior to executing the command.
Default value: ``undef``
##### `vars`
Data type: `Optional[Icinga2::CustomAttributes]`
A dictionary containing custom attributes that are specific to this service,
a string to do operations on this dictionary or an array for multiple use
of custom attributes.
Default value: ``undef``
##### `timeout`
Data type: `Optional[Icinga2::Interval]`
The command timeout in seconds.
Default value: ``undef``
##### `arguments`
Data type: `Optional[Hash]`
A dictionary of command arguments.
Default value: ``undef``
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store in this object. File will be declared the
first time.
##### `import`
Data type: `Array`
Sorted List of templates to include.
Default value: `[]`
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted alpha numeric.
Default value: `20`
### `icinga2::object::host`
Manage Icinga 2 Host objects.
#### Parameters
The following parameters are available in the `icinga2::object::host` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `host_name`
Data type: `String`
Hostname of the Host object.
Default value: `$title`
##### `import`
Data type: `Array`
Sorted List of templates to include.
Default value: `[]`
##### `display_name`
Data type: `Optional[String]`
A short description of the host (e.g. displayed by external interfaces instead of the name if set).
Default value: ``undef``
##### `address`
Data type: `Optional[Stdlib::Host]`
The host's address v4.
Default value: ``undef``
##### `address6`
Data type: `Optional[Stdlib::Host]`
The host's address v6.
Default value: ``undef``
##### `vars`
Data type: `Optional[Icinga2::CustomAttributes]`
A dictionary containing custom attributes that are specific to this service,
a string to do operations on this dictionary or an array for multiple use
of custom attributes.
Default value: ``undef``
##### `groups`
Data type: `Optional[Array]`
A list of host groups this host belongs to.
Default value: ``undef``
##### `check_command`
Data type: `Optional[String]`
The name of the check command.
Default value: ``undef``
##### `max_check_attempts`
Data type: `Optional[Integer[1]]`
The number of times a host is re-checked before changing into a hard state.
Default value: ``undef``
##### `check_period`
Data type: `Optional[String]`
The name of a time period which determines when this host should be checked.
Default value: ``undef``
##### `check_timeout`
Data type: `Optional[Icinga2::Interval]`
Check command timeout in seconds. Overrides the CheckCommand's timeout attribute.
Default value: ``undef``
##### `check_interval`
Data type: `Optional[Icinga2::Interval]`
The check interval (in seconds). This interval is used for checks when the host is in a HARD state.
Default value: ``undef``
##### `retry_interval`
Data type: `Optional[Icinga2::Interval]`
The retry interval (in seconds). This interval is used for checks when the host is in a SOFT state.
Default value: ``undef``
##### `enable_notifications`
Data type: `Optional[Boolean]`
Whether notifications are enabled.
Default value: ``undef``
##### `enable_active_checks`
Data type: `Optional[Boolean]`
Whether active checks are enabled.
Default value: ``undef``
##### `enable_passive_checks`
Data type: `Optional[Boolean]`
Whether passive checks are enabled.
Default value: ``undef``
##### `enable_event_handler`
Data type: `Optional[Boolean]`
Enables event handlers for this host.
Default value: ``undef``
##### `enable_flapping`
Data type: `Optional[Boolean]`
Whether flap detection is enabled.
Default value: ``undef``
##### `enable_perfdata`
Data type: `Optional[Boolean]`
Whether performance data processing is enabled.
Default value: ``undef``
##### `event_command`
Data type: `Optional[String]`
The name of an event command that should be executed every time the host's
state changes or the host is in a SOFT state.
Default value: ``undef``
##### `flapping_threshold_low`
Data type: `Optional[Integer[1]]`
Flapping lower bound in percent for a host to be considered not flapping.
Default value: ``undef``
##### `flapping_threshold_high`
Data type: `Optional[Integer[1]]`
Flapping upper bound in percent for a host to be considered flapping.
Default value: ``undef``
##### `volatile`
Data type: `Optional[Boolean]`
The volatile setting enables always HARD state types if NOT-OK state changes occur.
Default value: ``undef``
##### `zone`
Data type: `Optional[String]`
The zone this object is a member of.
Default value: ``undef``
##### `command_endpoint`
Data type: `Optional[String]`
The endpoint where commands are executed on.
Default value: ``undef``
##### `notes`
Data type: `Optional[String]`
Notes for the host.
Default value: ``undef``
##### `notes_url`
Data type: `Optional[String]`
Url for notes for the host (for example, in notification commands).
Default value: ``undef``
##### `action_url`
Data type: `Optional[String]`
Url for actions for the host (for example, an external graphing tool).
Default value: ``undef``
##### `icon_image`
Data type: `Optional[String]`
Icon image for the host. Used by external interfaces only.
Default value: ``undef``
##### `icon_image_alt`
Data type: `Optional[String]`
Icon image description for the host. Used by external interface only.
Default value: ``undef``
##### `template`
Data type: `Boolean`
Set to true creates a template instead of an object.
Default value: ``false``
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store in this object. File will be declared the
first time.
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted alpha numeric.
Default value: `50`
### `icinga2::object::hostgroup`
Manage Icinga 2 HostGroup objects.
#### Examples
#####
```puppet
icinga2::object::hostgroup { 'monitoring-hosts':
display_name => 'Linux Servers',
groups => [ 'linux-servers' ],
target => '/etc/icinga2/conf.d/groups2.conf',
assign => [ 'host.name == NodeName' ],
}
```
#### Parameters
The following parameters are available in the `icinga2::object::hostgroup` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `display_name`
Data type: `Optional[String]`
A short description of the host group.
Default value: ``undef``
##### `groups`
Data type: `Optional[Array]`
An array of nested group names.
Default value: ``undef``
##### `assign`
Data type: `Array`
Assign host group members using the group rules.
Default value: `[]`
##### `ignore`
Data type: `Array`
Ignore host group members using the group rules.
Default value: `[]`
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store in this object. File will be declared at the
first time.
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted alpha numeric.
Default value: `55`
##### `hostgroup_name`
Data type: `String`
Default value: `$title`
### `icinga2::object::notificationcommand`
Manage Icinga 2 notificationcommand objects.
#### Parameters
The following parameters are available in the `icinga2::object::notificationcommand` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `notificationcommand_name`
Data type: `String`
Set the Icinga 2 name of the notificationcommand object.
Default value: `$title`
##### `command`
Data type: `Optional[Variant[Array, String]]`
The command. This can either be an array of individual command arguments.
Alternatively a string can be specified in which case the shell interpreter
(usually /bin/sh) takes care of parsing the command.
Default value: ``undef``
##### `env`
Data type: `Optional[Hash]`
A dictionary of macros which should be exported as environment variables
prior to executing the command.
Default value: ``undef``
##### `vars`
Data type: `Optional[Icinga2::CustomAttributes]`
A dictionary containing custom attributes that are specific to this service,
a string to do operations on this dictionary or an array for multiple use
of custom attributes.
Default value: ``undef``
##### `timeout`
Data type: `Optional[Icinga2::Interval]`
The command timeout in seconds.
Default value: ``undef``
##### `arguments`
Data type: `Optional[Hash]`
A dictionary of command arguments.
Default value: ``undef``
##### `template`
Data type: `Boolean`
Set to true creates a template instead of an object.
Default value: ``false``
##### `import`
Data type: `Array`
Sorted List of templates to include.
Default value: `[]`
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store in this object. File will be declared the
first time.
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted alpha numeric.
Default value: `25`
### `icinga2::object::servicegroup`
Manage Icinga 2 servicegroup objects.
#### Parameters
The following parameters are available in the `icinga2::object::servicegroup` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `servicegroup_name`
Data type: `String`
Set the Icinga 2 name of the servicegroup object.
Default value: `$title`
##### `display_name`
Data type: `Optional[String]`
A short description of the service group.
Default value: ``undef``
##### `groups`
Data type: `Optional[Array]`
An array of nested group names.
Default value: ``undef``
##### `assign`
Data type: `Array`
Assign user group members using the group assign rules.
Default value: `[]`
##### `ignore`
Data type: `Array`
Exclude users using the group ignore rules.
Default value: `[]`
##### `template`
Data type: `Boolean`
Set to true creates a template instead of an object.
Default value: ``false``
##### `import`
Data type: `Array`
Sorted List of templates to include.
Default value: `[]`
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store in this object. File will be declared the
first time.
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted alpha numeric.
Default value: `65`
### `icinga2::object::timeperiod`
Manage Icinga 2 timeperiod objects.
#### Parameters
The following parameters are available in the `icinga2::object::timeperiod` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `timeperiod_name`
Data type: `String`
Set the Icinga 2 name of the timeperiod object.
Default value: `$title`
##### `display_name`
Data type: `Optional[String]`
A short description of the time period.
Default value: ``undef``
##### `import`
Data type: `Array`
Sorted List of templates to include.
Default value: `['legacy-timeperiod']`
##### `ranges`
Data type: `Optional[Hash]`
A dictionary containing information which days and durations apply to this
timeperiod.
Default value: ``undef``
##### `prefer_includes`
Data type: `Optional[Boolean]`
Boolean whether to prefer timeperiods includes or excludes.
Default value: ``undef``
##### `excludes`
Data type: `Optional[Array]`
An array of timeperiods, which should exclude from your timerange.
Default value: ``undef``
##### `includes`
Data type: `Optional[Array]`
An array of timeperiods, which should include into your timerange
Default value: ``undef``
##### `template`
Data type: `Boolean`
Set to true creates a template instead of an object.
Default value: ``false``
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store this object in. File will be declared on the first run.
##### `order`
Data type: `Variant[String, Integer]`
String or integer to control the position in the target file, sorted alpha numeric.
Default value: `35`
### `icinga2::object::user`
Manage Icinga 2 user objects.
#### Parameters
The following parameters are available in the `icinga2::object::user` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `user_name`
Data type: `String`
Set the Icinga 2 name of the user object.
Default value: `$title`
##### `display_name`
Data type: `Optional[String]`
A short description of the user.
Default value: ``undef``
##### `email`
Data type: `Optional[String]`
An email string for this user. Useful for notification commands.
Default value: ``undef``
##### `pager`
Data type: `Optional[String]`
A pager string for this user. Useful for notification commands.
Default value: ``undef``
##### `vars`
Data type: `Optional[Icinga2::CustomAttributes]`
A dictionary containing custom attributes that are specific to this service,
a string to do operations on this dictionary or an array for multiple use
of custom attributes.
Default value: ``undef``
##### `groups`
Data type: `Optional[Array]`
An array of group names.
Default value: ``undef``
##### `enable_notifications`
Data type: `Optional[Boolean]`
Whether notifications are enabled for this user.
Default value: ``undef``
##### `period`
Data type: `Optional[String]`
The name of a time period which determines when a notification for this user
should be triggered.
Default value: ``undef``
##### `types`
Data type: `Optional[Array]`
A set of type filters when this notification should be triggered.
everything is matched.
Default value: ``undef``
##### `states`
Data type: `Optional[Array]`
A set of state filters when this notification should be triggered.
Default value: ``undef``
##### `template`
Data type: `Boolean`
Set to true creates a template instead of an object.
Default value: ``false``
##### `import`
Data type: `Array`
Sorted List of templates to include.
Default value: `[]`
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store in this object. File will be declared the
first time.
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted alpha numeric.
Default value: `75`
### `icinga2::object::usergroup`
Manage Icinga 2 usergroup objects.
#### Parameters
The following parameters are available in the `icinga2::object::usergroup` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `usergroup_name`
Data type: `String`
Set the Icinga 2 name of the usergroup object.
Default value: `$title`
##### `display_name`
Data type: `Optional[String]`
A short description of the service group.
Default value: ``undef``
##### `groups`
Data type: `Array`
An array of nested group names.
Default value: `[]`
##### `assign`
Data type: `Array`
Assign user group members using the group assign rules.
Default value: `[]`
##### `ignore`
Data type: `Array`
Exclude users using the group ignore rules.
Default value: `[]`
##### `template`
Data type: `Boolean`
Set to true creates a template instead of an object.
Default value: ``false``
##### `import`
Data type: `Array`
Sorted List of templates to include.
Default value: `[]`
##### `target`
Data type: `Stdlib::Absolutepath`
Destination config file to store in this object. File will be declared the
first time.
##### `order`
Data type: `Variant[String, Integer]`
String or integer to set the position in the target file, sorted alpha numeric.
Default value: `80`
### `icinga2::object::zone`
Manage Icinga 2 zone objects.
#### Parameters
The following parameters are available in the `icinga2::object::zone` defined type.
##### `ensure`
Data type: `Enum['absent', 'present']`
Set to present enables the object, absent disables it.
Default value: `present`
##### `zone_name`
Data type: `String`
Set the Icinga 2 name of the zone object.
Default value: `$title`
##### `endpoints`
Data type: `Optional[Array]`
List of endpoints belong to this zone.
Default value: `[]`
##### `parent`
Data type: `Optional[String]`
Parent zone to this zone.
Default value: ``undef``
##### `global`
Data type: `Optional[Boolean]`
If set to true, a global zone is defined and the parameter endpoints
and parent are ignored.
Default value: ``false``
##### `target`
Data type: `Optional[Stdlib::Absolutepath]`
Destination config file to store in this object. File will be declared at the
first time.
Default value: ``undef``
##### `order`
Data type: `Variant[String, Integer]`
String or integer to control the position in the target file, sorted alpha numeric.
Default value: `45`
## Functions
### `icinga2::icinga2_attributes`
Type: Ruby 4.x API
---- original file header ----
#### `icinga2::icinga2_attributes(Any *$args)`
---- original file header ----
Returns: `Data type` Describe what the function returns here
##### `*args`
Data type: `Any`
The original array of arguments. Port this to individually managed params
to get the full benefit of the modern function API.
### `icinga2::icinga2_ticket_id`
Type: Ruby 4.x API
---- original file header ----
#### `icinga2::icinga2_ticket_id(Any *$args)`
---- original file header ----
Returns: `Data type` Describe what the function returns here
##### `*args`
Data type: `Any`
The original array of arguments. Port this to individually managed params
to get the full benefit of the modern function API.
### `icinga2_attributes`
Type: Ruby 3.x API
Wrapper for config parser
#### `icinga2_attributes()`
The icinga2_attributes function.
Returns: `Any` Parsed config as string
### `icinga2_ticket_id`
Type: Ruby 3.x API
Generates a auth ticket to get a certificate
#### `icinga2_ticket_id()`
The icinga2_ticket_id function.
Returns: `Any` The ticket to get a certificate
## Data types
### `Icinga2::CustomAttributes`
A type for the structure of custom attributes
Alias of `Optional[Variant[String, Array[Variant[String, Hash]], Hash]]`
### `Icinga2::Fingerprint`
Type for certificate fingerprints
SHA1: 160 bit (20 byte) digest
SHA256: 256 bit (32 byte) digest
Alias of `Pattern[/^([0-9a-fA-F]{2}\:){19}(([0-9a-fA-F]{2}\:){12})?[0-9a-fA-F]{2}$/]`
### `Icinga2::Interval`
A strict type for intervals
Alias of `Variant[Integer, Pattern[/^\d+\.?\d*[d|h|m|s]?$/]]`
### `Icinga2::LogFacility`
A strict type of syslog facilities
Alias of `Variant[Enum['LOG_AUTH', 'LOG_AUTHPRIV', 'LOG_CRON', 'LOG_DAEMON', 'LOG_FTP', 'LOG_KERN', 'LOG_LPR', 'LOG_MAIL', 'LOG_NEWS', 'LOG_SYSLOG', 'LOG_USER', 'LOG_UUCP'], Pattern[/^LOG_LOCAL[0-7]$/]]`
### `Icinga2::LogSeverity`
A strict type for log levels
Alias of `Enum['debug', 'information', 'notice', 'warning', 'critical']`

File Metadata

Mime Type
text/plain
Expires
Fri, Jul 4, 3:16 PM (6 d, 6 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3300868

Event Timeline