Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2016.4.x
- Puppet >= 4.10.0 < 7.0.0
- , , , , , , , ,
This module has been deprecated by its author since Jun 3rd 2024.
The author has suggested puppet-icinga2 as its replacement.
Start using this module
Documentation
Icinga 2 Puppet Module
Table of Contents
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with icinga2
- Usage - Configuration options and additional functionality
- How Configuration is parsed
- Reference
- Release Notes
Overview
Icinga 2 is a widely used open source monitoring software. This Puppet module helps with installing and managing configuration of Icinga 2 on multiple operating systems.
Module Description
This module installs and configures Icinga 2 on your Linux or Windows hosts.
By default it uses packages provided by your distribution's repository or Chocolatey on Windows.
The module can also be configured to use packages.icinga.com as the primary repository, which enables you to install Icinga 2 versions that are newer than the ones provided by your distribution's vendor. All features and objects available in Icinga 2 can be enabled and configured with this module.
Setup
What the Icinga 2 Puppet module supports
- Installation of packages
- Configuration of features
- Configuration of objects (also apply rules)
- Service
- MySQL / PostgreSQL Database Schema Import
- Repository Management
- Certification Authority
Dependencies
This module supports:
- [puppet] >= 4.10 < 7.0.0
And depends on:
- puppetlabs/stdlib >= 4.16.0 < 7.0.0
- If Puppet 6 is used a stdlib 5.1 or higher is required, see https://github.com/Icinga/puppet-icinga2/issues/505
- puppetlabs/concat >= 2.1.0 < 7.0.0
Depending on your setup following modules may also be required:
- puppetlabs/apt >= 6.0.0
- puppetlabs/chocolatey >= 3.1.0
- puppet/zypprepo >= 2.2.1
- [puppetlabs/yumrepo_core] >= 1.0.0
- If Puppet 6 is used
Limitations
This module has been tested on:
- Ruby >= 1.9
- Debian 9, 10
- Ubuntu 16.04, 18.04
- CentOS/RHEL 6, 7, 8
- Fedora 31
- FreeBSD 10, 11
- SLES 12
- Windows Server 2012 R2, 2016
Other operating systems or versions may work but have not been tested.
Usage
Installing Icinga
The default class icinga2
installs and configures a basic installation of Icinga 2. The features checker
, mainlog
and notification
are enabled by default.
By default, your distribution's packages are used to install Icinga 2. On Windows systems we use the Chocolatey package manager.
Use the manage_repo
parameter to configure the official packages.icinga.com repositories.
class { '::icinga2':
manage_repo => true,
}
Notice: Since Icinga v2.11.0 on RedHat the EPEL-Repository is required to install the Boost libraries. EPEL is NOT managed by this module so you have to do this on your own in front of icinga2 class, e.g. as yum_repo
or if you've an internet connection as a simple package resource like:
package { 'epel-release': }
class { '::icinga2':
manage_repo => true,
}
Notice: The same holds on Debian with the backports repository.
include ::apt, ::apt::backports
class { '::icinga2':
manage_repo => true,
}
Info: If you are using the Icinga Web 2 Puppet module on the same server, make sure to disable the repository management for one of the modules!
Since version 2.0.0 you're able via hiera to overload which repository will be used for installation, e.g. for icinga on YUM based operating systems:
---
icinga2::repo:
baseurl: 'http://myhost.example.org/epel/%{facts.os.release.major}/release/'
proxy: http://proxy.example.org:3128
Notice: If you wanna setup Icinga on Debian 8 the required backports repository (Icinga 2 v2.11.0 or higher) changed its location! You have to use hiera to configure the location used by the class apt::backports or disable manage_repo
by setting to false
to manage the required repos by yourself.
---
apt::backports::location: http://archive.debian.org/debian
You can also change or set every other parameter of the underlying resources, supported for operating system families:
- RedHat, resource type: yumrepo
- Debian, define resource: apt::source
- SuSE, resource type: zypprepo
- a workaround is implemented to use a parameter proxy also to download the gpg key thru a proxy, see https://github.com/Icinga/puppet-icinga2/issues/397.
If you want to manage the version of Icinga 2, you have to disable the package management of this module and handle packages in your own Puppet code. The attribute manage_repo is disabled by default and you have to manage a repository within icinga in front of the package resource. You can combine this one with the section before about repositories.
include ::icinga2::repo
package { 'icinga2':
ensure => latest,
notify => Class['icinga2'],
}
class { '::icinga2':
manage_package => false,
}
Note: Be careful with this option: Setting manage_package
to false means that this module will not install any package at
all, including IDO packages!
Clustering Icinga
Icinga 2 can run in three different roles:
- in a master zone which is on top of the hierarchy
- in a satellite zone which is a child of a satellite or master zone
- a standalone client node/zone which works as an agent connected to master and/or satellite zones
To learn more about Icinga 2 Clustering, follow the official docs on distributed monitoring. The following examples show how these roles can be configured using this Puppet module.
Master
A Master zone has no parent and is usually also the place where you enable the IDO and notification features. A master sends configurations over the Icinga 2 protocol to satellites and/or clients.
More detailed examples can be found in the [examples] directory.
This example creates the configuration for a master that has one satellite connected. A global zone is created for templates, and all features of a typical master are enabled.
class { '::icinga2':
confd => false,
constants => {
'ZoneName' => 'master',
'TicketSalt' => '5a3d695b8aef8f18452fc494593056a4',
},
}
class { '::icinga2::feature::api':
pki => 'none'
accept_commands => true,
# when having multiple masters, you have to enable:
accept_config => true,
endpoints => {
'master.example.org' => {},
'satellite.example.org' => {
'host' => '172.16.2.11'
},
},
zones => {
'master' => {
'endpoints' => ['master.example.org'],
},
'dmz' => {
'endpoints' => ['satellite.example.org'],
'parent' => 'master',
},
}
}
# to enable a CA on this instance you have to declare. Only one instance is allowed to be a CA:
include ::icinga2::pki::ca
icinga2::object::zone { 'global-templates':
global => true,
}
Satellite
A satellite has a parent zone and one or multiple child zones. Satellites are usually created to distribute the monitoring load or to reach delimited zones in the network. A satellite either executes checks itself or delegates them to a client.
The satellite has fewer features enabled, but executes checks similar to a master. It connects to a master zone, and to a satellite or client below in the hierarchy. As parent acts either the master zone, or another satellite zone.
class { '::icinga2':
confd => false,
# setting dedicated feature list to disable notification
features => ['checker','mainlog'],
constants => {
'ZoneName' => 'dmz',
},
}
class { '::icinga2::feature::api':
accept_config => true,
accept_commands => true,
ca_host => '172.16.1.11',
ticket_salt => '5a3d695b8aef8f18452fc494593056a4',
# to increase your security set fingerprint to validate the certificate of ca_host
# fingerprint => 'D8:98:82:1B:14:8A:6A:89:4B:7A:40:32:50:68:01:99:3D:96:72:72',
endpoints => {
'satellite.example.org' => {},
'master.example.org' => {
'host' => '172.16.1.11',
},
},
zones => {
'master' => {
'endpoints' => ['master.example.org'],
},
'dmz' => {
'endpoints' => ['satellite.example.org'],
'parent' => 'master',
},
}
}
icinga2::object::zone { 'global-templates':
global => true,
}
Agent
Icinga 2 runs as a client usually on each of your servers. It receives config or commands from a satellite or master zones and runs the checks that have to be executed locally.
The client is connected to the satellite, which is the direct parent zone.
class { '::icinga2':
confd => false,
features => ['mainlog'],
}
class { '::icinga2::feature::api':
accept_config => true,
accept_commands => true,
ticket_salt => '5a3d695b8aef8f18452fc494593056a4',
# to increase your security set fingerprint to validate the certificate of ca_host
# fingerprint => 'D8:98:82:1B:14:8A:6A:89:4B:7A:40:32:50:68:01:99:3D:96:72:72',
endpoints => {
'NodeName' => {},
'satellite.example.org' => {
'host' => '172.16.2.11',
},
},
zones => {
'ZoneName' => {
'endpoints' => ['NodeName'],
'parent' => 'dmz',
},
'dmz' => {
'endpoints' => ['satellite.example.org'],
},
}
}
icinga2::object::zone { 'global-templates':
global => true,
}
The parameter fingerprint
is optional and new since v2.1.0. It's used to validate the certificate of the CA host.
A fingerprint can be got by openssl x509 -noout -fingerprint -sha1 -inform pem -in master.crt
on the master host.
Config Objects
With this module you can create almost every object that Icinga 2 knows about. When creating objects some parameters are required. This module sets the same requirements as Icinga 2 does. When creating an object you must set a target for the configuration.
Here are some examples for some object types:
Host
icinga2::object::host { 'srv-web1.fqdn.com':
display_name => 'srv-web1.fqdn.com',
address => '127.0.0.1',
address6 => '::1',
check_command => 'hostalive',
target => '/etc/icinga2/conf.d/srv-web1.fqdn.com.conf',
}
Service
icinga2::object::service { 'uptime':
host_name => 'srv-web1.fqdn.com',
display_name => 'Uptime',
check_command => 'check_uptime',
check_interval => '600m',
groups => ['uptime', 'linux'],
target => '/etc/icinga2/conf.d/uptime.conf',
}
Hostgroup
icinga2::object::hostgroup { 'monitoring-hosts':
display_name => 'Linux Servers',
groups => [ 'linux-servers' ],
target => '/etc/icinga2/conf.d/groups2.conf',
assign => [ 'host.vars.os == linux' ],
}
Reading objects from hiera
The following example shows how icinga2 objects can be read from a hiera datastore. See also examples/objects_from_hiera.pp.
class { 'icinga2':
manage_repo => true,
}
$defaults = lookup('monitoring::defaults', undef, undef, {})
lookup('monitoring::objects').each |String $object_type, Hash $content| {
$content.each |String $object_name, Hash $object_config| {
ensure_resource(
$object_type,
$object_name,
deep_merge($defaults[$object_type], $object_config))
}
}
The datastore could be like:
---
monitoring::objects:
'icinga2::object::host':
centos7.localdomain:
address: 127.0.0.1
vars:
os: Linux
'icinga2::object::service':
ping4:
check_command: ping4
apply: true
assign:
- host.address
ssh:
check_command: ssh
apply: true
assign:
- host.address && host.vars.os == Linux
monitoring::defaults:
'icinga2::object::host':
import:
- generic-host
target: /etc/icinga2/conf.d/hosts.conf
'icinga2::object::service':
import:
- generic-service
target: /etc/icinga2/conf.d/services.conf
Apply Rules
Some objects can be applied to other objects. To create a simple apply rule you
must set the apply
parameter to true
. If this parameter is set to a string,
this string will be used to build an apply for
loop. A service object always
targets a host object. All other objects need to explicitly set an
apply_target
Apply a SSH service to all Linux hosts:
icinga2::object::service { 'SSH':
target => '/etc/icinga2/conf.d/test.conf',
apply => true,
assign => [ 'host.vars.os == Linux' ],
ignore => [ 'host.vars.os == Windows' ],
display_name => 'Test Service',
check_command => 'ssh',
}
Apply notifications to services:
icinga2::object::notification { 'testnotification':
target => '/etc/icinga2/conf.d/test.conf',
apply => true,
apply_target => 'Service',
assign => [ 'host.vars.os == Linux' ],
ignore => [ 'host.vars.os == Windows' ],
user_groups => ['icingaadmins']
}
Assign all Linux hosts to a hostgroup:
icinga2::object::hostgroup { 'monitoring-hosts':
display_name => 'Linux Servers',
groups => [ 'linux-servers' ],
target => '/etc/icinga2/conf.d/groups2.conf',
assign => [ 'host.vars.os == linux' ],
}
A loop to create HTTP services for all vHosts of a host object:
icinga2::object::service { 'HTTP':
target => '/etc/icinga2/conf.d/http.conf',
apply => 'http_vhost => config in host.vars_http_vhost',
assign => [ 'host.vars.os == Linux' ],
display_name => 'HTTP Service',
check_command => 'http',
}
Custom Configuration
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. The module collects all file resource types with this tag and triggers a reload of Icinga 2 on a file change.
include ::icinga2
file { '/etc/icinga2/conf.d/for-loop.conf':
ensure => file,
source => '...',
tag => 'icinga2::config::file',
}
How Configuration is parsed
To generate a valid Icinga 2 configuration all object attributes are parsed. This simple parsing algorithm takes a decision for each attribute, whether part of the string is to be quoted or not, and how an array or dictionary is to be formatted.
Parsing of a single attribute can be disabled by tagging it with -: at the front of the string.
attr => '-:"unparsed string with quotes"'
An array, a hash or a string can be assigned to an object attribute. True and false are also valid values.
Hashes and arrays are created recursively, and all parts – such as single items of an array, keys and its values are parsed separately as strings.
Strings are parsed in chunks, by splitting the original string into separate substrings at specific keywords (operators)
such as +
, -
, in
, &&
, ||
, etc.
NOTICE: This splitting only works for keywords that are surrounded by whitespace, e.g.:
attr => 'string1 + string2 - string3'
The algorithm will loop over the parameter and start by splitting it into 'string1' and 'string2 - string3'. 'string1' will be passed to the sub function 'value_types' and then the algorithm will continue parsing the rest of the string ('string2 - string3'), splitting it, passing it to value_types, etc.
Brackets are parsed for expressions:
attr => '3 * (value1 - value2) / 2'
The parser also detects function calls and will parse all parameters separately.
attr => 'function(param1, param2, ...)'
True and false can be used as either booleans or strings.
attrs => true or attr => 'true'
In Icinga you can write your own lambda functions with {{ ... }}. For Puppet use:
attrs => '{{ ... }}'
The parser analyzes which parts of the string have to be quoted and which do not.
As a general rule, all fragments are quoted except for the following:
- Boolean:
true
,false
- Numbers:
3
or2.5
- Time Intervals:
3m
or2.5h
(s = seconds, m = minutes, h = hours, d = days) - Functions:
{{ ... }}
or function()
{}
- All constants, which are declared in the constants parameter in main class
icinga2
NodeName
- Names of attributes that belong to the same type of object:
- e.g.
name
andcheck_command
for a host object
- e.g.
- All attributes or variables (custom attributes) from the host, service or user contexts:
host.name
,service.check_command
,user.groups
, ...
Assignment with += and -=:
Now it's possible to build an Icinga DSL code snippet like
vars += config
simply use a string with the prefix '+ ', e.g.
vars => '+ config',
The blank between + and the proper string 'config' is imported for the parser because numbers
attr => '+ -14',
are also possible now. For numbers -= can be built, too:
attr => '- -14',
Arrays can also be marked to merge with '+' or reduce by '-' as the first item of the array:
attr => [ '+', item1, item2, ... ]
Result: attr += [ item1, item2, ... ]
attr => [ '-', item1, item2, ... ]
Result: attr -= [ item1, item2, ... ]
That all works for attributes and custom attributes!
Finally dictionaries can be merged when a key '+' is set:
attr => {
'+' => true,
'key1' => 'val1',
}
Result:
attr += {
"key1" = "val1"
}
If 'attr' is a custom attribute this just works since level 3 of the dictionary:
vars => {
'level1' => {
'level2' => {
'level3' => {
'+' => true,
...
},
},
},
},
Parsed to:
vars.level1["level2"] += level3
Now it's also possible to add multiple custom attributes:
vars => [
{
'a' => '1',
'b' => '2',
},
'config',
{
'c' => {
'd' => {
'+' => true,
'e' => '5',
},
},
},
],
And you'll get:
vars.a = "1"
vars.b = "2"
vars += config
vars.c["d"] += {
"e" = "5"
}
Note: Using an Array always means merge '+=' all items to vars.
What isn't supported?
It's not currently possible to use dictionaries in a string WITH nested array or hash, like
attr1 => 'hash1 + { item1 => value1, item2 => [ value1, value2 ], ... ]'
attr2 => 'hash2 + { item1 => value1, item2 => { ... },... }'
Reference
See REFERENCE.md
Release Notes
When releasing new versions we refer to SemVer 1.0.0 for version numbers. All steps required when creating a new release are described in RELEASE.md
See also CHANGELOG.md
Reference
Table of Contents
Classes
Public Classes
icinga2
: This module installs and configures Icinga 2.icinga2::feature::api
: Configures the Icinga 2 feature api.icinga2::feature::checker
: Configures the Icinga 2 feature checker.icinga2::feature::command
: Configures the Icinga 2 feature command.icinga2::feature::compatlog
: Configures the Icinga 2 feature compatlog.icinga2::feature::debuglog
: Configures the Icinga 2 feature mainlog.icinga2::feature::elasticsearch
: Configures the Icinga 2 feature elasticsearch.icinga2::feature::gelf
: Configures the Icinga 2 feature gelf.icinga2::feature::graphite
: Configures the Icinga 2 feature graphite.icinga2::feature::icingadb
: Configures the Icinga 2 feature icingadb.icinga2::feature::idomysql
: Installs and configures the Icinga 2 feature ido-mysql.icinga2::feature::idopgsql
: Installs and configures the Icinga 2 feature ido-pgsql.icinga2::feature::influxdb
: Configures the Icinga 2 feature influxdb.icinga2::feature::livestatus
: Configures the Icinga 2 feature livestatus.icinga2::feature::mainlog
: Configures the Icinga 2 feature mainlog.icinga2::feature::notification
: Configures the Icinga 2 feature notification.icinga2::feature::opentsdb
: Configures the Icinga 2 feature opentsdb.icinga2::feature::perfdata
: Configures the Icinga 2 feature perfdata.icinga2::feature::statusdata
: Configures the Icinga 2 feature statusdata.icinga2::feature::syslog
: Configures the Icinga 2 feature syslog.icinga2::pki::ca
: 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::repo
: This class manages the packages.icinga.com repository based on the operating system. Windows is not supported.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
: Set a code fragment in a target configuration file.icinga2::object::apiuser
: Manage Icinga 2 ApiUser objects.icinga2::object::checkcommand
: Manage Icinga 2 Host objects.icinga2::object::checkresultreader
: Manage Icinga 2 CheckResultReader objects.icinga2::object::dependency
: Manage Icinga 2 dependency objects.icinga2::object::endpoint
: Manage Icinga 2 endpoint objects.icinga2::object::eventcommand
: Manage Icinga 2 EventCommand objects.icinga2::object::host
: Manage Icinga 2 Host objects.icinga2::object::hostgroup
: Manage Icinga 2 HostGroup objects.icinga2::object::notification
: Manage Icinga 2 notification objects.icinga2::object::notificationcommand
: Manage Icinga 2 notificationcommand objects.icinga2::object::scheduleddowntime
: Manage Icinga 2 scheduleddowntime objects.icinga2::object::service
: Manage Icinga 2 service objects.icinga2::object::servicegroup
: Manage Icinga 2 servicegroup objects.icinga2::object::timeperiod
: Manage Icinga 2 timeperiod objects.icinga2::object::user
: Manage Icinga 2 user objects.icinga2::object::usergroup
: Manage Icinga 2 usergroup objects.icinga2::object::zone
: 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
: Summarise what the function does hereicinga2::icinga2_ticket_id
: Summarise what the function does hereicinga2_attributes
: Wrapper for config parsericinga2_ticket_id
: Generates a auth ticket to get a certificate
Data types
Icinga2::CustomAttributes
: A type for the structure of custom attributesIcinga2::Fingerprint
: Type for certificate fingerprintsIcinga2::Interval
: A strict type for intervalsIcinga2::LogFacility
: A strict type of syslog facilitiesIcinga2::LogSeverity
: A strict type for log levels
Classes
icinga2
This module installs and configures Icinga 2.
- Note Setting manage_package 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.
include ::icinga2
If you want to use the official Icinga Project repository, enable the manage_repo parameter.
class { 'icinga2':
manage_repo => 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.
class { 'icinga2':
manage_service => false,
}
To manage the version of Icinga 2 binaries you can do it by disable package management:
package { 'icinga2':
ensure => latest,
notifiy => Class['icinga2'],
}
class { '::icinga2':
manage_package => 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.
class { 'icinga2':
...
constants => {
'key1' => 'value1',
'key2' => 'value2',
'PluginContirbDir' => '/usr/local/nagios/plugins',
}
}
Enabling features with there defaults or loading parameters via Hiera:
class { '::icinga2':
manage_repo => 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.
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.
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.
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
When set to true this module will install the packages.icinga.com repository. With this official repo you can get the latest version of Icinga. When set to false the operating systems default will be used. As the Icinga Project does not offer a Chocolatey repository, you will get a warning if you enable this parameter on Windows.
Default value: false
manage_package
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_package
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'.
include ::icinga2::feature::api
To use your own certificates and key as file resources if the contant NodeName is set to fqdn (default) do:
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:
class { 'icinga2::feature::api':
pki => 'none',
ssl_cacert => '-----BEGIN CERTIFICATE----- ...',
ssl_key => '-----BEGIN RSA PRIVATE KEY----- ...',
ssl_cert => '-----BEGIN CERTIFICATE----- ...',
}
Fine tune TLS settings
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:
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[String]
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[String]
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[String]
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 -sha1 -inform pem -in [certificate-file.crt]'
on your CA host.
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.
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
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.
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[String]
The private key in a base64 encoded string to store in spicified ssl_key_path file.
Default value: undef
ssl_cert
Data type: Optional[String]
The certificate in a base64 encoded to store in spicified ssl_cert_path file.
Default value: undef
ssl_cacert
Data type: Optional[String]
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
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.
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 module.
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.
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[String]
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[String]
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[String]
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 module.
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.
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
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.
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[String]
The private key in a base64 encoded string to store in ssl_key_path file.
Default value: undef
ssl_cert
Data type: Optional[String]
The certificate in a base64 encoded string to store in ssl_cert_path file.
Default value: undef
ssl_cacert
Data type: Optional[String]
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:
include icinga2
include icinga2::pki::ca
Set the content of CA certificate and key:
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.
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:
::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:
::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:
::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.
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[Integer[1]]
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::dependency
Manage Icinga 2 dependency objects.
Parameters
The following parameters are available in the icinga2::object::dependency
defined type.
ensure
Data type: Enum['absent', 'present']
Set to present enables the object, absent disables it.
Default value: present
dependency_name
Data type: String
Set the Icinga 2 name of the dependency object.
Default value: $title
parent_host_name
Data type: Optional[String]
The parent host.
Default value: undef
parent_service_name
Data type: Optional[String]
The parent service. If omitted, this dependency object is treated as host dependency.
Default value: undef
child_host_name
Data type: Optional[String]
The child host.
Default value: undef
child_service_name
Data type: Optional[String]
The child service. If omitted, this dependency object is treated as host dependency.
Default value: undef
disable_checks
Data type: Optional[Boolean]
Whether to disable checks when this dependency fails.
Default value: undef
disable_notifications
Data type: Optional[Boolean]
Whether to disable notifications when this dependency fails. true.
Default value: undef
ignore_soft_states
Data type: Optional[Boolean]
Whether to ignore soft states for the reachability calculation. true.
Default value: undef
period
Data type: Optional[String]
Time period during which this dependency is enabled.
Default value: undef
states
Data type: Optional[Array]
A list of state filters when this dependency should be OK.
Default value: undef
apply
Data type: Variant[Boolean, String]
Dispose an apply instead an object if set to 'true'. Value is taken as statement, i.e. 'vhost => config in host.vars.vhosts'.
Default value: false
prefix
Data type: Variant[Boolean, String]
Set dependency_name as prefix in front of 'apply for'. Only effects if apply is a string.
Default value: false
apply_target
Data type: Enum['Host', 'Service']
An object type on which to target the apply rule. Valid values are Host
and Service
.
Default value: 'Host'
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: 70
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[Integer[1]]
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[Stdlib::Absolutepath]
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
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::notification
Manage Icinga 2 notification objects.
Parameters
The following parameters are available in the icinga2::object::notification
defined type.
ensure
Data type: Enum['absent', 'present']
Set to present enables the object, absent disables it.
Default value: present
notification_name
Data type: String
Set the Icinga 2 name of the notification object.
Default value: $title
host_name
Data type: Optional[String]
The name of the host this notification belongs to.
Default value: undef
service_name
Data type: Optional[String]
The short name of the service this notification belongs to. If omitted, this notification object is treated as host notification.
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
users
Data type: Optional[Variant[String, Array]]
A list of user names who should be notified.
Default value: undef
user_groups
Data type: Optional[Variant[String, Array]]
A list of user group names who should be notified.
Default value: undef
times
Data type: Optional[Hash]
A dictionary containing begin and end attributes for the notification.
Default value: undef
command
Data type: Optional[String]
The name of the notification command which should be executed when the notification is triggered.
Default value: undef
interval
Data type: Optional[Variant[Icinga2::Interval,Pattern[/(host|service)\./]]]
The notification interval (in seconds). This interval is used for active notifications.
Default value: undef
period
Data type: Optional[String]
The name of a time period which determines when this notification should be triggered.
Default value: undef
zone
Data type: Optional[String]
The zone this object is a member of.
Default value: undef
types
Data type: Optional[Variant[Array, String]]
A list of type filters when this notification should be triggered.
Default value: undef
states
Data type: Optional[Variant[Array, String]]
A list 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
apply
Data type: Variant[Boolean, String]
Dispose an apply instead an object if set to 'true'. Value is taken as statement, i.e. 'vhost => config in host.vars.vhosts'.
Default value: false
prefix
Data type: Variant[Boolean, String]
Set notification_name as prefix in front of 'apply for'. Only effects if apply is a string.
Default value: false
apply_target
Data type: Enum['Host', 'Service']
An object type on which to target the apply rule. Valid values are Host
and Service
.
Default value: 'Host'
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: 85
assign
Data type: Array
Default value: []
ignore
Data type: Array
Default value: []
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[Integer[1]]
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::scheduleddowntime
Manage Icinga 2 scheduleddowntime objects.
Parameters
The following parameters are available in the icinga2::object::scheduleddowntime
defined type.
ensure
Data type: Enum['absent', 'present']
Set to present enables the object, absent disables it.
Default value: present
scheduleddowntime_name
Data type: String
Set the Icinga 2 name of the scheduleddowntime object.
Default value: $title
host_name
Data type: Optional[String]
The name of the host this comment belongs to.
Default value: undef
service_name
Data type: Optional[String]
The short name of the service this comment belongs to. If omitted, this comment object is treated as host comment.
Default value: undef
author
Data type: Optional[String]
The author's name.
Default value: undef
comment
Data type: Optional[String]
The comment text.
Default value: undef
fixed
Data type: Optional[Boolean]
Whether this is a fixed downtime.
Default value: undef
duration
Data type: Optional[Icinga2::Interval]
The duration as number.
Default value: undef
ranges
Data type: Optional[Hash]
A dictionary containing information which days and durations apply to this timeperiod.
Default value: undef
apply
Data type: Variant[Boolean, String]
Dispose an apply instead an object if set to 'true'. Value is taken as statement, i.e. 'vhost => config in host.vars.vhosts'.
Default value: false
prefix
Data type: Variant[Boolean, String]
Set scheduleddowntime_name as prefix in front of 'apply for'. Only effects if apply is a string.
Default value: false
apply_target
Data type: Enum['Host', 'Service']
An object type on which to target the apply rule. Valid values are Host
and Service
.
Default value: 'Host'
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: []
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: 90
icinga2::object::service
Manage Icinga 2 service objects.
Examples
A service ping
is applied to all hosts with a valid ipv4 address.
::icinga2::object::service { 'ping4':
import => ['generic-service'],
apply => true,
check_command => 'ping',
assign => ['host.address'],
target => '/etc/icinga2/zones.d/global-templates/services.conf',
}
A apply Service for (disk_name =>config in host.vars.disks)
rule is applied to all Linux hosts with an Icinga Agent. Note in this example it's required that the endpoint (see command_endpoint
) and the host object has the same name!
::icinga2::object::service { 'linux_disks':
import => ['generic-service'],
apply => 'disk_name => config in host.vars.disks',
check_command => 'disk',
command_endpoint => 'host.name',
vars => '+ config',
assign => ['host.vars.os == Linux'],
ignore => ['host.vars.noagent'],
target => '/etc/icinga2/zones.d/global-templates/services.conf',
}
Parameters
The following parameters are available in the icinga2::object::service
defined type.
ensure
Data type: Enum['absent', 'present']
Set to present enables the object, absent disables it.
Default value: present
service_name
Data type: String
Set the Icinga 2 name of the service object.
Default value: $title
display_name
Data type: Optional[String]
A short description of the service.
Default value: undef
host_name
Data type: Optional[String]
The host this service belongs to. There must be a Host object with that name.
Default value: undef
groups
Data type: Optional[Array]
The service groups this service belongs to.
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
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 service 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 service 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 service 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 service 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 service's state changes or the service 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 service.
Default value: undef
notes_url
Data type: Optional[String]
Url for notes for the service (for example, in notification commands).
Default value: undef
action_url
Data type: Optional[String]
Url for actions for the service (for example, an external graphing tool).
Default value: undef
icon_image
Data type: Optional[Stdlib::Absolutepath]
Icon image for the service. Used by external interfaces only.
Default value: undef
icon_image_alt
Data type: Optional[String]
Icon image description for the service. 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
apply
Data type: Variant[Boolean, String]
Dispose an apply instead an object if set to 'true'. Value is taken as statement, i.e. 'vhost => config in host.vars.vhosts'.
Default value: false
prefix
Data type: Variant[Boolean, String]
Set service_name as prefix in front of 'apply for'. Only effects if apply is a string.
Default value: false
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: []
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: 60
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
Alias of Pattern[/^([0-9a-fA-F]{2}\:){19}[0-9,a-f,A-F]{2}$/]
Icinga2::Interval
A strict type for intervals
Alias of 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']
Change Log
v2.4.0 (2020-04-24)
Implemented enhancements:
Fixed bugs:
- Fix rubocop LineLength # see https://rubocop.readthedocs.io/en/latest… #611 (thomas-merz)
v2.3.4 (2020-03-25)
Implemented enhancements:
- Remove Support for some platforms #610
- Allow to parse a simple hash in strings #588
- Allow to parse an array in strings #587
- rework icinga2::repo class to a public class #609 (lbetz)
- Influxdb can be reachable via any port #607 (b3n4kh)
- Debian10 support #604 (lbetz)
- Enhancement/allow to get attributes from function result #603 (lbetz)
- RHEL 8 support #600 (lbetz)
- Porting functions to the modern Puppet 4.x API #598 (binford2k)
Fixed bugs:
v2.3.3 (2020-03-16)
Implemented enhancements:
Fixed bugs:
- Private keys: no diff, no backup #606 (Thomas-Gelf)
Closed issues:
- REOPEN: does not handle database host correctly #572
v2.3.2 (2019-12-18)
Fixed bugs:
v2.3.1 (2019-12-17)
Fixed bugs:
Closed issues:
- Cannot complete agent / client add via puppet #585
v2.3.0 (2019-07-26)
Implemented enhancements:
- Add new attributes to feature api #581
- Add new constants and keywords #579
- Add info of new constant MaxConcurrentChecks to feature checker #578
- New HA-aware Features #576
Fixed bugs:
- Remove OpenBSD from official support list #583
- Add missed flapping attributes to objects host and service #580
v2.2.0 (2019-07-14)
Implemented enhancements:
- Remove deprecated data_provider #568
- Convert to pdk #528
- add new type for custom attributes to support also arrays #574 (lbetz)
- add feature to merge arrays and hashes by the parser #573 (lbetz)
- Extent parser to build += assignments #569 (lbetz)
- Add constants for Gentoo AMD64 #567 (ekohl)
- convert module to PDK #564 (SimonHoenscheid)
Fixed bugs:
- Downgrade restore of vars #575
- Pin versions for travis of required puppet modules for puppet 4 #570
- fix #570 Pin versions for travis of required puppet modules for puppet #571 (lbetz)
- Fix Puppet4 build #565 (SimonHoenscheid)
Closed issues:
- Allow to specify both vars + config as custom vars using hash #566
v2.1.1 (2019-05-24)
Implemented enhancements:
- Rework travis batch and enable check for puppet 6 #560
Fixed bugs:
- Fix and update TESTING documentation #561
- Set default of all optional parameters in globals to undef #559
- Fact kernel on windows has to be lower case #556
- Fix some lint issues in api, idomysql, globals #553
- Fix tests for Puppet 6 #550
- Fix spec tests of icinga objects #549
- Fix spec tests for class pki #548
- Fix spec tests for feature idopgsql #547
- Fix spec tests for feature idomysql #546
- Fix spec test of feature api #545
- fix typo in README.md #544 (bastelfreak)
Closed issues:
- Icinga2 custom config dir (not /etc/...) #543
v2.1.0 (2019-04-30)
Implemented enhancements:
- The puppet module does not validate the master's X.509 certificate #360
- Set the object file owner to root #533 (ekohl)
Fixed bugs:
- Path on Windows does not work #542
- Documentation of default values for InfluxWriter is outdated #537
- The puppet module does not validate the master's X.509 certificate #360
v2.0.2 (2019-03-14)
Implemented enhancements:
Fixed bugs:
- Unable to define endpoint with custom port number #530
Merged pull requests:
v2.0.1 (2019-02-12)
Fixed bugs:
- Syntax error custom data type logfacility #527
v2.0.0 (2019-02-12)
Implemented enhancements:
- Set default of host to localhost for feature idopgsql #526
- Add an example for idomysql via SSL #524
- Add some custom data types #521
- Remove repos info to data in module hiera #519
- Puppet 6 Support #505
- API change to icinga2 CA as default #495
- Path to key, cert and cacert are not configurable anymore #493
- Move to module data #490
- Remove define resource compatlogger #488
- Rework rspec tests #486
- Remove include of params from object class #485
- Change location of the CA and the cert #484
- Change storing of certificate for influxdb feature #483
- Change storing of certificate for elasticsearch feature #482
- Remove management of repository.d in install.pp #479
- Default of parameter import of icinga2::object::notificationcommand is outdated #478
- Rework dependency list of modules #476
- Remove default apply_target from service object #475
- Default of parameter import of icinga2::object::eventcommand is outdated #468
- Default of parameter import of icinga2::object::checkcommand is outdated #467
- Rework param data types of icinga2::feature::syslog #465
- Rework param data types of icinga2::feature::statusdata #464
- Rework param data types of icinga2::feature::perfdata #463
- Rework param data types of icinga2::feature::opentsdb #462
- Rework param data types of icinga2::feature::livestatus #461
- Rework param data types of icinga2::feature::influxdb #460
- Rework param data types of icinga2::feature::idopgsql #459
- Rework param data types of icinga2::feature::idomysql #458
- Rework param data types of icinga2::feature::graphite #457
- Rework param datatypes of icinga2::feature::gelf #456
- Rework param data types of icinga2::feature::elasticsearch #455
- Rework param datatype of icinga2::feature::compatlog #454
- Rework param data types of icinga2::feature::api #453
- Remove icinga2::pki::ca #452
- Add crl_path to feature api #432
- Import IDO DB schema for mysql over SSL isn't supported #414
- Updated to support puppetlabs/chocolatey 3.0.0? #363
- Use beaker for acceptence tests and replace boxes with bento #356
- Separate unit tests for functions #355
- Add IDO PostreSQL integration tests #278
- Replace deprecated stdlib functions #275
- Add elasticsearch feature #418 (dnsmichi)
Fixed bugs:
- Cannot use localhost as host in feature idomysql #525
- IdoMysqlConnection: Optional parameters are forced by module #523
- ElasticsearchWriter: Optional parameters are forced by module #522
- fix unit test functions/attributes_spec.rb #517
- rework unit test for objects_spec.rb #516
- Evaluation Error: Error while evaluating a Function Call, Class[Icinga2::Globals]: #504
- Incomplete list of supported operatingssystems #501
- pki::ca require dependency to config class #498
- Unknown variable _ssl_key #497
- Unknown variable ido_mysql_package on debian #496
- Missing documentation of class icinga::globals #494
- InfluxWriter: Optional parameters are forced by module #491
- Duplicate key HOSTDISPLAYNAME in example_config.pp #480
- Attribute vars of all object types can be also a string #474
- Attribute vars of object type service can be also a string #473
- Parameter prefix of icinga2::object::service is not a boolean only #472
- Parameter prefix of icinga2::object::notification is not a boolean only #470
- Parameter host_name icinga2::object::host is not optional #469
- Debian 9/Stretch support #466
- Parameter order of concat resource has to be a string #451
- Incorrect example for icinga2::object::apiuser #448
- Using a reference to icinga variable in icinga2::object::notification $interval #443
- Replace gpgkey handling for suse #397
- Fix syntax error #487 (paladox)
Closed issues:
- OS facts clutter with recent ruby versions in spec tests #518
- Deprecated features in 2.9: statusdata & compatlog #481
Merged pull requests:
- example of check_mysql and check_mysql_health #387 (rowanruseler)
- Replace validate_* with data types #350 (baurmatt)
v1.4.0 (2019-01-18)
Implemented enhancements:
- Feature Request: Allow to pass ticket_id to API Feature #512
- New parameter 'ticket_id' for API feature #514 (benningm)
- Facility configuration for Syslog + New severity for syslog #502 (liveder)
- Add multiline support for lambda functions and unparsed strings. #422 (n00by)
Fixed bugs:
- Fix init_spec test #515
- Problem with ownership NETWORK on non-english Windows #511
- API configuration on Windows systems #510
- Allow dots in data structures of object attributes #509
- Some comments when using on Windows #499
- Windows : owner and group #437
- Quote and escape string values correctly #471 (marcofl)
- Depend on Apt::Update instead of Apt::Source #446 (jkroepke)
Merged pull requests:
- Fixed markup error in Readme.md #508 (dagobert)
- Quoting mistake in doc #507 (dagobert)
- Fixed requirements #506 (dagobert)
v1.3.7 (2018-11-29)
Fixed bugs:
v1.3.6 (2018-04-25)
Implemented enhancements:
- Add support for SLC6 Linux #441 (HristoMohamed)
- Support manage_repo on XenServer #436 (jcharaoui)
Fixed bugs:
- Changes on concat resource for objects does not trigger a refresh on puppet3 #434
- don't quote null #433
Merged pull requests:
v1.3.5 (2018-01-24)
Implemented enhancements:
- icinga2 binary is wrong on rhel5 #409
- Add feature Elasticsearch #408
- Add feature elasticsearch #399
- Added cloudlinux to supported operating systems. Is nearly identical … #424 (Koma-Andrea)
Fixed bugs:
- Setting up icinga2 with a different port than default for idodb leads to an error #411
- fix #411 Setting up Icinga 2 with a different port than default for i… #413 (lbetz)
- fix for repository.d directory on master-systems #412 (matthiasritter)
Merged pull requests:
- trivial copy edits #420 (wkalt)
- Fix confd example path #417 (dnsmichi)
- fix #409 icinga2 binary is wrong on rhel5 #410 (lbetz)
v1.3.4 (2017-11-22)
Fixed bugs:
- repository.d missing after install #403
- Boolean 'false' custom variables do not appear in configuration #400
- $bin_dir path incorrect for FreeBSD in params.pp #396
Closed issues:
- missing /etc/pki directory #393
Merged pull requests:
- fix #400 boolean false custom variables do not appear in configuration #406 (lbetz)
- Bug/repository.d missing after install 403 #404 (lbetz)
- fix #396 incorrect bin_dir path for FreeBSD #401 (lbetz)
v1.3.3 (2017-10-24)
Fixed bugs:
- Icinga2 binary not found on Redhat/Centos 6 family #390
Merged pull requests:
v1.3.2 (2017-10-11)
Fixed bugs:
- SLES should use service pack repository #386
v1.3.1 (2017-10-05)
Implemented enhancements:
- Fix small typos #358
- Review and update puppetlabs-concat dependency #351
- Documentation to set up mysql grants is incorrect. #347
- Check attributes of all objects #219
- Align documentation for duplicate repository #353
- Update documentation about += operator #352
- Example and documentation for syncing hiera data to icinga objects #342
- Add owner-, groupship and permissions to file resources #291
- Support Puppet 5 and test it in travis #330 (lazyfrosch)
Fixed bugs:
- Error: Could not find command 'icinga2' on SLES-11 #374
- When passing non-fqdn name for the NodeName the certificate is still generated with cn set to fqdn #328
- Install package before creating config files #378
- Icinga2 binary not found on Debian and FreeBSD #371
- Could not find command Icinga2 on windows #367
- Error: Parameter user failed on Exec[icinga2 pki create key]: Unable to execute commands as other users on Windows at manifestsfeature/api.pp:317 #366
- Unit tests broken for facter 2.5 #338
- protection of private classes is wrong #333
- ticketsalt only should be stored on ca nodes #325
- key and cert permissions on windows #282
Closed issues:
- Implement conditional statements/loops parameter for icinga2::object::* #354
- document manage_package with manage_repo #381
Merged pull requests:
- Remove soft depedencies from metadata.json #385 (noqqe)
- fix #378 install package before creating config files #380 (lbetz)
- fix #371, add binary path to icinga2 for Debian, SuSE and FreeBSD #372 (lbetz)
- fix #325, ticket_salt ist stored to api.conf only if pki = none|ca #370 (lbetz)
- fix #367, #366 and remove management of conf_dir #369 (lbetz)
- Examples: Fix notification commands for 2.7 #368 (dnsmichi)
- Fixed typos #357 (rgevaert)
- fix #338 update facterdb dependency to 0.3.12 #349 (lbetz)
- Update protection of private classes from direct use #336 (lbetz)
- Fix dependency issues with apt repository #334 (baurmatt)
- Update documentation examples for mysql::db #346 (rgevaert)
v1.3.0 (2017-06-26)
Implemented enhancements:
- README.md: clarify meaning of
confd=\>true
#314 (sourcejedi)
Fixed bugs:
- PR #293 does not work correctly #304
- fix certname in api and pki::ca class to constant NodeName #319
- ordering-api-with-pki-after-package #311
- Only last empty hash is stored #308
- module requirements broken. #305
- ido-mysql install fails while using official icinga packages #302
- concat resource with tag does not trigger a refresh #300
- ido packages are managed before repository #299
- RSpec Puppetlabs modules incompatible to Puppet 3 #286
- Disable feature checker doesn't trigger a refresh #285
- SLES Lib directory is not architecture specific #283
- Fix examples/init_confd.pp #313 (sourcejedi)
- README.md: fix typo
notifiy
#312 (sourcejedi) - debian::dbconfig: Move to autoload location and lint it #322 (lazyfrosch)
Merged pull requests:
- Update checker.pp, arrow alignment #316 (rowanruseler)
- Update fragment.pp #315 (rowanruseler)
- Add GitHub issue template #310 (dnsmichi)
- Specify older fixtures for Puppet 3 tests #287 (lazyfrosch)
- Update SLES lib directory #284 (dgoetz)
- Replace darin/zypprepo with puppet/zypprepo #306 (noqqe)
- Remove deprecated apt options #293 (jkroepke)
v1.2.1 (2017-04-12)
Implemented enhancements:
- Create integration tests for MySQL IDO feature #207
- Add condition to be sure that icinga2 base class is parsed first #280
- Remove checker feature from examples for agents #279
- Remove sles-12 reference from Gemfile #274
- Add tests for custom facts #273
- Create integration tests for API feature #206
Fixed bugs:
- Fix schema import for FreeBSD #277
- Fix ::icinga2::pki::ca for FreeBSD #276
- Fix arrow_on_right_operand_line lint #272
- case statement without default in feature api #266
- case statement without default in idomysql feature #265
- case statement without default in influx feature #264
- Fix strings containing only a variable #263
- Replace selectors inside resource blocks #262
Merged pull requests:
- fix time periods example #271 (deric)
- Update icingamaster.yaml because yaml-lint failes #270 (matthiasritter)
v1.2.0 (2017-03-16)
Implemented enhancements:
- Add concurrent check parameter to checker object #260
- use a tag to disable parsing for a single attribute value #254
- replace service restart with reload #250
- Update docs of example4 with hint for Puppet 4 #234
- Add service name to service apply loops #227
Fixed bugs:
- consider-type-of-attribute #256
v1.1.1 (2017-03-08)
Implemented enhancements:
- add example of the whole example config #252
- enable_ha for notification feature #242
- Enhance docs on how to enable and use features #235
Fixed bugs:
- set groups default to undef for object servicegroup #251
- hash key with empty hash as value is parsed wrong #247
- attribute keys are missed for parsing #246
- Create signed certificate with custom CA #239
- Can't pass function via variable #238
- ido schema import dependency #237
- Using pki => "ca" can either cause incomplete deps or circular reference #236
Closed issues:
- Can't enable feature::idomysql without importing schema #241
Merged pull requests:
v1.1.0 (2017-02-20)
Implemented enhancements:
- Deploy to puppet forge via travis #43
Fixed bugs:
- Parse issue when attribute is a nested hash with an array value #223
- icinga2 feature api fails when pki=icinga2 and ca is the local node #218
- Error installing module from forge for non r10k users #217
- Apply Notification "users" and "user_groups" as variable #208
Merged pull requests:
- Fix parse issues when attribute is a nested hash with an array value #225 (lbetz)
- Remove Puppet 4 Warning - delete :undef symbols in attr hash #222 (Reamer)
- Allow other time units in notification and scheduleddowntime #220 (jkroepke)
- Add initial FreeBSD support #210 (xaque208)
v1.0.2 (2017-01-24)
Implemented enhancements:
- Add Oracle Linux Support #216
Fixed bugs:
Merged pull requests:
- Revert "Merge branch 'feature/workaround-for-puppetdb-14031'" #215 (bobapple)
- travis: Enable deploy to Puppetforge #213 (lazyfrosch)
- Add support for OracleLinux #200 (TwizzyDizzy)
v1.0.1 (2017-01-19)
Implemented enhancements:
- [dev.icinga.com #14031] Workaround for PuppetDB #198
- [dev.icinga.com #13923] Remove 'Icinga Development Team' as single author from header #197
- [dev.icinga.com #13921] Add alternative example of exported resources #196
- [dev.icinga.com #12659] Upload module to Puppet Forge #100
- Fix Puppet version requirement in metadata.json #205
Merged pull requests:
- Improve wording for a few parts of the README.md file #201 (gunnarbeutner)
- Extended example 3 README to mention Puppet parser bug #45 (kwisatz)
- Improving README #44 (lazyfrosch)
v0.8.1 (2017-01-11)
Fixed bugs:
- [dev.icinga.com #13919] Fix imports object template #195
- [dev.icinga.com #13917] Remove hash validation of vars attribut #194
Merged pull requests:
- Parallelisation problems with Travis on Ruby 2.1 #42 (lazyfrosch)
v0.8.0 (2017-01-04)
Implemented enhancements:
- [dev.icinga.com #13875] Add TLS options for api feature #191
- [dev.icinga.com #13873] Get fixtures for specs from Puppet Forge #190
- [dev.icinga.com #13501] Add support for Parallel Spec Tests #156
Fixed bugs:
- [dev.icinga.com #13877] Fix SUSE repo #192
- [dev.icinga.com #13871] Remove json, json_pure dependency for Ruby >= 2 #189
- [dev.icinga.com #13867] Travis-CI test with Puppet \< 4 #188
- [dev.icinga.com #13863] Make puppet lint happy #187
- [dev.icinga.com #13799] change attribute checkcommand to checkcommand_name in object checkcommand #176
- [dev.icinga.com #13797] change attribute apiuser to apiuser_name in object apiuser #175
- [dev.icinga.com #13795] change attribute zone to zone_name in object zone #174
- [dev.icinga.com #13793] change attribute endpoint to endpoint_name in object endpoint #173
- [dev.icinga.com #13791] change attribute hostname to host_name in object host #172
Merged pull requests:
- feature/api: Add TLS detail settings #41 (lazyfrosch)
- Rakefile: Add and enable parallel_spec by default #40 (lazyfrosch)
- Make Puppet Lint happy #37 (lazyfrosch)
- Enabling Travis CI #36 (lazyfrosch)
v0.7.2 (2017-01-02)
Implemented enhancements:
- [dev.icinga.com #13333] Support collecting exported zones and endpoints #152
- [dev.icinga.com #13835] Added an example that uses exported resources #186
Fixed bugs:
- [dev.icinga.com #13779] add attribute notificationcommand_name to object notificationcommand #166
- [dev.icinga.com #13833] Add possibility to set command parameter as String. #185
- [dev.icinga.com #13831] fix target as undef in several objects #184
- [dev.icinga.com #13829] fix target as undef in several objects #183
Merged pull requests:
- Added an example that uses exported resources to create a master-agent set-up using exported resources. #32 (kwisatz)
v0.7.1 (2016-12-28)
Fixed bugs:
- [dev.icinga.com #13821] fix feature debuglog #182
- [dev.icinga.com #13819] fix object checkcommand #181
- [dev.icinga.com #13817] fix feature mainlog #180
- [dev.icinga.com #13815] add attribute notificationcommand_name to object notificationcommand #179
- [dev.icinga.com #13803] fix documentation of all objects #178
- [dev.icinga.com #13801] change title of concat_fragment in object to title #177
- [dev.icinga.com #13789] add attribute usergroup_name to object usergroup #171
- [dev.icinga.com #13787] add attribute user_name to object user #170
- [dev.icinga.com #13785] add attribute timeperiod_name to object timeperiod #169
- [dev.icinga.com #13783] add attribute servicegroup_name to object servicegroup #168
- [dev.icinga.com #13781] add attribute scheduleddowntime_name to object scheduleddowntime #167
- [dev.icinga.com #13777] add attribute notification_name to object notification #165
- [dev.icinga.com #13775] add attribute eventcommand_name to object eventcommand #164
- [dev.icinga.com #13773] add attribute dependency_name to object dependency #163
- [dev.icinga.com #13771] add attribute compatlogger_name to object compatlogger #162
- [dev.icinga.com #13769] add attribute checkresultreader_name to object checkresultreader #161
- [dev.icinga.com #13767] add attribute service_name to object service #160
- [dev.icinga.com #13701] Calling private method "Puppet.settings.preferred_run_mode=" in facter/icinga2_puppet.rb breaks Puppet master #159
Merged pull requests:
- Add possibility to use ip or hostname. #31 (n00by)
- Fix non-breaking space. #30 (n00by)
- Don't call private method preferred_run_mode= in facts #29 (antaflos)
v0.7.0 (2016-12-15)
Implemented enhancements:
- [dev.icinga.com #12344] CA handling using file ressource #50
- [dev.icinga.com #13513] Rework default order values for all objects #158
- [dev.icinga.com #13511] Add custom config fragment #157
- [dev.icinga.com #13495] CA handling using the icinga2 CLI #155
- [dev.icinga.com #13385] Add Travis CI Tests #154
- [dev.icinga.com #12653] Add Support for SLES 12 #96
- [dev.icinga.com #12652] CA handling using custom function from puppet-icinga2-legacy #95
- [dev.icinga.com #12651] CA handling with base64 encoded string #94
Fixed bugs:
- [dev.icinga.com #13365] Wrong MySQL user grants for schema import in docs #153
Merged pull requests:
- make service validation consistent with host validation #26 (deric)
- update influxdb documentation #25 (deric)
- [OSMC Hackathon] Adding initial SLES support #24 (jfryman)
- Remove duplicate target parameter section in icinga2::object::timeper… #23 (kwisatz)
- fix small typos #22 (xorpaul)
v0.6.0 (2016-11-23)
Implemented enhancements:
- [dev.icinga.com #12982] Red Hat Satellite / Puppet 3.x compatibility #142
- [dev.icinga.com #12374] Object Downtime #80
- [dev.icinga.com #12371] Object Comment #77
- [dev.icinga.com #13219] How attribute parsing works documentation #150
- [dev.icinga.com #13181] Apply Rules Docs #147
- [dev.icinga.com #12960] Consider function calls in attributes parsing #140
- [dev.icinga.com #12959] Attribute function does not included adding value #139
- [dev.icinga.com #12958] Add parsing of assign rules to attribute function #138
- [dev.icinga.com #12957] Extend attributes Function #137
- [dev.icinga.com #12878] Extend attributes fct to parse connected strings #136
- [dev.icinga.com #12839] use-fct-attributes-for-other-configs #126
- [dev.icinga.com #12387] Object UserGroup #92
- [dev.icinga.com #12385] Object User #91
- [dev.icinga.com #12384] Object TimePeriod #90
- [dev.icinga.com #12383] Object ServiceGroup #89
- [dev.icinga.com #12382] Object Service #88
- [dev.icinga.com #12381] Object ScheduledDowntime #87
- [dev.icinga.com #12380] Object NotificationCommand #86
- [dev.icinga.com #12379] Object Notification #85
- [dev.icinga.com #12378] Object HostGroup #84
- [dev.icinga.com #12377] Object Host #83
- [dev.icinga.com #12376] Object EventCommand #82
- [dev.icinga.com #12373] Object Dependency #79
- [dev.icinga.com #12372] Object CompatLogger #78
- [dev.icinga.com #12370] Object CheckResultReader #76
- [dev.icinga.com #12369] Object CheckCommand #75
- [dev.icinga.com #12349] Apply Rules #55
Fixed bugs:
- [dev.icinga.com #13217] Icinga Functions don't parse correctly #149
- [dev.icinga.com #13207] Wrong config for attribute vars in level 3 hash #148
- [dev.icinga.com #13179] Ruby 1.8 testing #146
- [dev.icinga.com #13149] "in" is a keyword for assignment #145
- [dev.icinga.com #13123] Objects with required parameters #144
- [dev.icinga.com #13035] Wrong syntax of "apply" in object.conf.erb template (afaik) #143
- [dev.icinga.com #12980] Symlinks in modules are not allowed in puppet modules #141
Merged pull requests:
v0.5.0 (2016-10-10)
Implemented enhancements:
- [dev.icinga.com #12859] Doc example for creating IDO database #129
- [dev.icinga.com #12836] Write profile class examples #124
- [dev.icinga.com #12806] Rework feature idopgsql #121
- [dev.icinga.com #12805] Rework feature idomysql #120
- [dev.icinga.com #12804] Rework feature influxdb #119
- [dev.icinga.com #12802] Usage documentation #118
- [dev.icinga.com #12801] Adjust SSL settings for features #117
- [dev.icinga.com #12771] Add parameter ensure to objects #114
- [dev.icinga.com #12759] Extend api feature with endpoints and zones parameter #113
- [dev.icinga.com #12754] features-with-objects #112
- [dev.icinga.com #12388] Object Zone #93
- [dev.icinga.com #12375] Object Endpoint #81
- [dev.icinga.com #12368] Object ApiUser #74
- [dev.icinga.com #12367] Objects #73
Fixed bugs:
- [dev.icinga.com #12875] Icinga2 does not start on Windows #135
- [dev.icinga.com #12871] Please replace facts icinga2_puppet_* by $::settings #133
- [dev.icinga.com #12872] Add Requires to basic config for features and objects that need additional packages #134
- [dev.icinga.com #12867] Feature-statusdata-update-interval-default #132
- [dev.icinga.com #12865] Class scoping #131
- [dev.icinga.com #12864] debian based system repo handling #130
- [dev.icinga.com #12858] Doc example class icinga2 #128
- [dev.icinga.com #12857] Default owner of config dir #127
- [dev.icinga.com #12837] File permission on windows #125
- [dev.icinga.com #12821] Unify windows unit tests #123
- [dev.icinga.com #12809] Path of Puppet keys and certs broken #122
- [dev.icinga.com #12797] windows line-breaks for objects #116
- [dev.icinga.com #12775] Api feature unit tests fail for windows #115
v0.4.0 (2016-09-22)
Implemented enhancements:
- [dev.icinga.com #12720] Feature ido-pgsql #108
- [dev.icinga.com #12706] Implement host_format_template and service_format_template for perfdata feature #105
- [dev.icinga.com #12363] Feature ido-mysql #69
Fixed bugs:
- [dev.icinga.com #12743] paths in api feature must be quoted #111
v0.3.1 (2016-09-16)
Implemented enhancements:
- [dev.icinga.com #12693] Fix fixtures.yaml #102
- [dev.icinga.com #12366] Feature notification #72
- [dev.icinga.com #12365] Feature mainlog #71
- [dev.icinga.com #12364] Feature influxdb #70
- [dev.icinga.com #12362] Feature graphite #68
- [dev.icinga.com #12361] Feature checker #67
- [dev.icinga.com #12360] Feature syslog #66
- [dev.icinga.com #12359] Feature statusdata #65
- [dev.icinga.com #12358] Feature perfdata #64
- [dev.icinga.com #12357] Feature opentsdb #63
- [dev.icinga.com #12356] Feature livestatus #62
- [dev.icinga.com #12355] Feature gelf #61
- [dev.icinga.com #12354] Feature debuglog #60
- [dev.icinga.com #12353] Feature compatlog #59
- [dev.icinga.com #12352] Feature command #58
- [dev.icinga.com #12351] Feature api #57
- [dev.icinga.com #12350] Features #56
- [dev.icinga.com #12343] Use certificates generated by Puppet #49
Fixed bugs:
- [dev.icinga.com #12724] RSpec tests without effect #109
- [dev.icinga.com #12714] 32bit for Windows #107
- [dev.icinga.com #12713] unit test for all defaults in feature mainlog #106
- [dev.icinga.com #12698] Params inheritance in features #104
- [dev.icinga.com #12696] Notify service when features-available/feature.conf is created #103
- [dev.icinga.com #12692] Fix mlodule depency Typo for module puppetlabs/chocolaty #101
- [dev.icinga.com #12738] Duplicate declaration File[/etc/icinga2/pki] #110
v0.2.0 (2016-09-09)
Implemented enhancements:
- [dev.icinga.com #12658] Decide whether or not to drop support for Puppet 3.x and below #99
- [dev.icinga.com #12657] Unit tests should cover every supported OS/Distro instead of just one #98
- [dev.icinga.com #12346] Add Support for Ubuntu 14.04, 16.04 #52
- [dev.icinga.com #12341] Config handling #47
Fixed bugs:
- [dev.icinga.com #12656] Inheritance #97
v0.1.0 (2016-09-06)
Implemented enhancements:
- [dev.icinga.com #12348] Add Support for Windows #54
- [dev.icinga.com #12347] Add Support for CentOS 6, 7 #53
- [dev.icinga.com #12345] Add Support for Debian 7, 8 #51
- [dev.icinga.com #12342] Repo management #48
- [dev.icinga.com #12340] Installation #46
v0.6.2 (2015-01-30)
v0.6.1 (2014-12-03)
* This Change Log was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 5.0.0 < 7.0.0)
- puppetlabs/concat (>= 2.1.0 < 7.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.