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, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 4.7.0 < 7.0.0
- , , , ,
This module has been deprecated by its author since Jun 3rd 2024.
The author has suggested puppet-icingaweb2 as its replacement.
Start using this module
Documentation
Icinga Web 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 Icinga Web 2
- Usage - Configuration options and additional functionality
- Reference
- Development - Guide for contributing to the module
Overview
Icinga Web 2 is the associated web interface for the open source monitoring tool Icinga 2. This module helps with installing and managing configuration of Icinga Web 2 and its modules on multiple operating systems.
Description
This module installs and configures Icinga Web 2 on your Linux host by using the official packages from packages.icinga.com. Dependend packages are installed as they are defined in the Icinga Web 2 package.
This module can manage all configurations files of Icinga Web 2 and import an initial database schema. It can install and manage all official modules as well as modules developed by the community.
What's new in version 3.0.0
- The current version now uses the
icinga::repos
class from the new moduleicinga
for the configuration of repositories including EPEL on RedHat and Backports on Debian. (see https://github.com/icinga/puppet-icinga)
Setup
What the Icinga 2 Puppet module supports
- Installation of Icinga Web 2 via packages
- Configuration
- MySQL / PostgreSQL database schema import
- Install and manage official Icinga Web 2 modules
- Install community modules
Dependencies
This module depends on
- [icinga/ciinga] >= 1.0.0
- needed if
manage_repos
is set totrue
- needed if
- puppetlabs/stdlib >= 4.16.0
- puppetlabs/vcsrepo >= 1.3.0
- puppetlabs/concat >= 2.0.1
Limitations
This module has been tested on:
- Debian 9, 10
- CentOS/RHEL 6, 7, 8
- Requires Software Collections Repository
- Ubuntu 16.04, 18.04, 20.04
- SLES 12, 15
Other operating systems or versions may work but have not been tested.
Usage
NOTE: If you plan to use additional modules from git, the CLI git
command has to be installed. You can manage it yourself as package resource or declare the package name in extra_packages
.
By default, your distribution's packages are used to install Icinga Web 2.
Use the manage_repos
parameter to configure repositories by default the official and stable packages.icinga.com. To configure your own
repositories, or use the official testing or nightly snapshot stage, see https://github.com/icinga/puppet-icinga.
class { '::icingaweb2':
manage_repos => true,
}
The usage of this module isn't simple. That depends on how Icinga Web 2 is implemented. Monitoring is here just a module in a framework. All basic stuff like authentication, logging or authorization is done by this framework. To store user and usergroups in a MySQL database, the database has to exist:
mysql::db { 'icingaweb2':
user => 'icingaweb2',
password => 'supersecret',
host => 'localhost',
grant => [ 'ALL' ],
}
class {'icingaweb2':
manage_repos => true,
import_schema => true,
db_type => 'mysql',
db_host => 'localhost',
db_port => 3306,
db_username => 'icingaweb2',
db_password => 'supersecret',
config_backend => 'db',
extra_packages => [ 'git' ],
require => Mysql::Db['icingaweb2'],
}
If you set import_schema
to true
an default admin user icingaadmin
with password icinga
will be created automatically and you're allowed to login.
In case that import_schema
is disabled or you'd like to use a different backend for authorization like LDAP, more work is required. At first we need a ressource with credentials to connect a LDAP server:
class {'icingaweb2':
manage_repos => true,
}
icingaweb2::config::resource{ 'my-ldap':
type => 'ldap',
host => 'localhost',
port => 389,
ldap_root_dn => 'ou=users,dc=icinga,dc=com',
ldap_bind_dn => 'cn=icingaweb2,ou=users,dc=icinga,dc=com',
ldap_bind_pw => 'supersecret',
}
With the help of this resource, we are now creating user and group backends. Users are permitted to login and users and groups will later be used for authorization.
icingaweb2::config::authmethod { 'ldap-auth':
backend => 'ldap',
resource => 'my-ldap',
ldap_user_class => 'user',
ldap_filter => '(memberof:1.2.840.113556.1.4.1941:=CN=monitoring,OU=groups,DC=icinga,DC=com)',
ldap_user_name_attribute => 'cn',
order => '05',
}
icingaweb2::config::groupbackend { 'ldap-groups':
backend => 'ldap',
resource => 'my-ldap',
ldap_group_class => 'group',
ldap_group_name_attribute => 'cn',
ldap_group_member_attribute => 'member',
ldap_base_dn => 'ou=groups,dc=icinga,dc=com',
domain => 'icinga.com',
}
So that a group gets admin rights a role has to manage:
icingaweb2::config::role { 'default admin user':
groups => 'icingaadmins',
permissions => '*',
}
All available permissions for module monitoring are listed below:
| Description | Value |
|-------------|-------|
| Allow everything | *
|
| Allow to share navigation items | application/share/navigation
|
| Allow to adjust in the preferences whether to show stacktraces | application/stacktraces
|
| Allow to view the application log | application/log
|
| Grant admin permissions, e.g. manage announcements | admin
|
| Allow config access | config/*
|
| Allow access to module doc | module/doc
|
| Allow access to module monitoring | module/monitoring
|
| Allow all commands | monitoring/command/*
|
| Allow scheduling host and service checks | monitoring/command/schedule-check
|
| Allow acknowledging host and service problems | monitoring/command/acknowledge-problem
|
| Allow removing problem acknowledgements | monitoring/command/remove-acknowledgement
|
| Allow adding and deleting host and service comments | monitoring/command/comment/*
|
| Allow commenting on hosts and services | monitoring/command/comment/add
|
| Allow deleting host and service comments | monitoring/command/comment/delete
|
| Allow scheduling and deleting host and service downtimes | monitoring/command/downtime/*
|
| Allow scheduling host and service downtimes | monitoring/command/downtime/schedule
|
| Allow deleting host and service downtimes | monitoring/command/downtime/delete
|
| Allow processing host and service check results | monitoring/command/process-check-result
|
| Allow processing commands for toggling features on an instance-wide basis | monitoring/command/feature/instance
|
| Allow processing commands for toggling features on host and service objects | monitoring/command/feature/object/*
) |
| Allow processing commands for toggling active checks on host and service objects | monitoring/command/feature/object/active-checks
|
| Allow processing commands for toggling passive checks on host and service objects | monitoring/command/feature/object/passive-checks
|
| Allow processing commands for toggling notifications on host and service objects | monitoring/command/feature/object/notifications
|
| Allow processing commands for toggling event handlers on host and service objects | monitoring/command/feature/object/event-handler
|
| Allow processing commands for toggling flap detection on host and service objects | monitoring/command/feature/object/flap-detection
|
| Allow sending custom notifications for hosts and services | monitoring/command/send-custom-notification
|
| Allow access to module setup | module/setup
|
| Allow access to module test | module/test
|
| Allow access to module translation | module/translation
|
Finally we configure the monitoring with the needed connection to the IDO to get information and an API user to send commands to Icinga 2:
class {'icingaweb2::module::monitoring':
ido_host => 'localhost',
ido_db_type => 'mysql',
ido_db_name => 'icinga2',
ido_db_username => 'icinga2',
ido_db_password => 'supersecret',
commandtransports => {
icinga2 => {
transport => 'api',
username => 'icingaweb2',
password => 'supersecret',
}
}
}
Reference
See REFERENCE.md
Development
A roadmap of this project is located at https://github.com/Icinga/puppet-icingaweb2/milestones. Please consider this roadmap when you start contributing to the project.
Contributing
When contributing several steps such as pull requests and proper testing implementations are required. Find a detailed step by step guide in CONTRIBUTING.md.
Testing
Testing is essential in our workflow to ensure a good quality. We use RSpec as well as Serverspec to test all components of this module. For a detailed description see TESTING.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
Authors
AUTHORS is generated on each release.
Reference
Table of Contents
Classes
Public Classes
icingaweb2
: Installs and configures Icinga Web 2.icingaweb2::globals
: This class loads the default parameters by doing a hiera lookup.icingaweb2::module::businessprocess
: Installs and enables the businessprocess module.icingaweb2::module::cube
: Installs and enables the cube module.icingaweb2::module::director
: Installs and configures the director module.icingaweb2::module::director::service
: Installs and configures the director service.icingaweb2::module::doc
: The doc module provides an interface to the Icinga 2 and Icinga Web 2 documentation.icingaweb2::module::elasticsearch
: The Elasticsearch module displays events from data stored in Elasticsearch.icingaweb2::module::fileshipper
: The fileshipper module extends the Director. It offers import sources to deal with CSV, JSON, YAML and XML files.icingaweb2::module::generictts
: Installs and enables the generictts module.icingaweb2::module::graphite
: The Graphite module draws graphs out of time series data stored in Graphite.icingaweb2::module::incubator
: Installs and enables the incubator module.icingaweb2::module::ipl
: Installs and enables the ipl module.icingaweb2::module::monitoring
: Manages the monitoring module. This module is mandatory for probably every setup.icingaweb2::module::puppetdb
: Installs and configures the puppetdb module.icingaweb2::module::reactbundle
: Installs and enables the reactbundle module.icingaweb2::module::translation
: Installs and configures the translation module.icingaweb2::module::vsphere
: The vSphere module extends the Director. It provides import sources for virtual machines and physical hosts from vSphere.
Private Classes
icingaweb2::config
: Configures Icinga Web 2.icingaweb2::install
: Installs Icinga Web 2 and extra packages.
Defined types
Public Defined types
icingaweb2::config::authmethod
: Manage Icinga Web 2 authentication methods. Auth methods may be chained by setting proper ordering.icingaweb2::config::groupbackend
: Groups of users can be stored either in a database, LDAP or ActiveDirectory. This defined type configures backends that store groups.icingaweb2::config::resource
: Create and remove Icinga Web 2 resources. Resources may be referenced in other configuration sections.icingaweb2::config::role
: Roles define a set of permissions that may be applied to users or groups.icingaweb2::inisection
: Manage settings in INI configuration files.icingaweb2::module
: Download, enable and configure Icinga Web 2 modules.
Private Defined types
icingaweb2::module::elasticsearch::eventtype
: Manages an Elasticsearch event typesicingaweb2::module::elasticsearch::instance
: Manages an Elasticsearch instanceicingaweb2::module::fileshipper::basedir
: Manages base directories for the fileshipper module.icingaweb2::module::fileshipper::directory
: Manages directories with plain Icinga 2 configuration files.icingaweb2::module::generictts::ticketsystem
: Manages ticketsystem configuration for the generictts module.icingaweb2::module::monitoring::commandtransport
: Manages commandtransport configuration for the monitoring module.icingaweb2::module::puppetdb::certificate
: Installs a certificate for the Icinga Web 2 puppetdb module.
Classes
icingaweb2
Installs and configures Icinga Web 2.
Examples
Use MySQL as backend for user authentication:
include ::mysql::server
mysql::db { 'icingaweb2':
user => 'icingaweb2',
password => 'supersecret',
host => 'localhost',
grant => [ 'ALL' ],
}
class {'icingaweb2':
manage_repos => true,
import_schema => true,
db_type => 'mysql',
db_host => 'localhost',
db_port => 3306,
db_username => 'icingaweb2',
db_password => 'supersecret',
require => Mysql::Db['icingaweb2'],
}
Use PostgreSQL as backend for user authentication:
include ::postgresql::server
postgresql::server::db { 'icingaweb2':
user => 'icingaweb2',
password => postgresql_password('icingaweb2', 'icingaweb2'),
}
class {'icingaweb2':
manage_repos => true,
import_schema => true,
db_type => 'pgsql',
db_host => 'localhost',
db_port => 5432,
db_username => 'icingaweb2',
db_password => 'icingaweb2',
require => Postgresql::Server::Db['icingaweb2'],
}
Parameters
The following parameters are available in the icingaweb2
class.
logging
Data type: Enum['file', 'syslog', 'php', 'none']
Whether Icinga Web 2 should log to 'file', 'syslog' or 'php' (web server's error log). Setting 'none' disables logging.
Default value: 'file'
logging_file
Data type: Stdlib::Absolutepath
If 'logging' is set to 'file', this is the target log file.
logging_level
Data type: Enum['ERROR', 'WARNING', 'INFO', 'DEBUG']
Logging verbosity. Possible values are 'ERROR', 'WARNING', 'INFO' and 'DEBUG'.
Default value: 'INFO'
logging_facility
Data type: Pattern[/user|local[0-7]/]
Logging facility when using syslog. Possible values are 'user' or 'local0' up to 'local7'.
Default value: 'user'
logging_application
Data type: String
Logging application name when using syslog.
Default value: 'icingaweb2'
show_stacktraces
Data type: Boolean
Whether to display stacktraces in the web interface or not.
Default value: false
module_path
Data type: Stdlib::Absolutepath
Path to module sources. Multiple paths must be separated by colon.
theme
Data type: String
The default theme setting. Users may override this settings.
Default value: 'Icinga'
theme_disabled
Data type: Boolean
Whether users can change themes or not.
Default value: false
manage_repo
Data type: Boolean
Deprecated, use manage_repos.
Default value: false
manage_repos
Data type: Boolean
When set to true this module will use the module icinga/puppet-icinga to manage repositories, e.g. the release repo on packages.icinga.com repository by default, the EPEL repository or Backports. For more information, see http://github.com/icinga/puppet-icinga.
Default value: false
manage_package
Data type: Boolean
If set to false
packages aren't managed.
Default value: true
extra_packages
Data type: Optional[Array[String]]
An array of packages to install additionally.
Default value: undef
import_schema
Data type: Boolean
Import database scheme. Make sure you have an existing database if you use this option.
Default value: false
db_type
Data type: Enum['mysql', 'pgsql']
Database type, can be either mysql
or pgsql
. This parameter is only used if import_schema
is true
or
config_backend
is db
.
Default value: 'mysql'
db_host
Data type: Stdlib::Host
Database hostname. This parameter is only used if import_schema
is true
or
config_backend
is db
.
Default value: 'localhost'
db_port
Data type: Stdlib::Port
Port of database host. This parameter is only used if import_schema
is true
or
config_backend
is db
.
Default value: 3306
db_name
Data type: String
Database name. This parameter is only used if import_schema
is true
or
config_backend
is db
.
Default value: 'icingaweb2'
db_username
Data type: Optional[String]
Username for database access. This parameter is only used if import_schema
is true
or
config_backend
is db
.
Default value: undef
db_password
Data type: Optional[String]
Password for database access. This parameter is only used if import_schema
is true
or
config_backend
is db
.
Default value: undef
config_backend
Data type: Enum['ini', 'db']
The global Icinga Web 2 preferences can either be stored in a database or in ini files. This parameter can either
be set to db
or ini
.
Default value: 'ini'
conf_user
Data type: String
By default this module expects Apache2 on the server. You can change the owner of the config files with this parameter.
conf_group
Data type: String
Group membership of config files.
default_domain
Data type: Optional[String]
When using domain-aware authentication, you can set a default domain here.
Default value: undef
cookie_path
Data type: Optional[Stdlib::Absolutepath]
Path to where cookies are stored.
Default value: undef
icingaweb2::globals
This class loads the default parameters by doing a hiera lookup.
- Note This parameters depend on the os plattform. Changes maybe will break the functional capability of the supported plattforms and versions. Please only do changes when you know what you're doing.
Parameters
The following parameters are available in the icingaweb2::globals
class.
package_name
Data type: String
conf_dir
Data type: Stdlib::Absolutepath
mysql_db_schema
Data type: Stdlib::Absolutepath
pgsql_db_schema
Data type: Stdlib::Absolutepath
gettext_package_name
Data type: String
icingacli_bin
Data type: Stdlib::Absolutepath
icingaweb2::module::businessprocess
Installs and enables the businessprocess module.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Examples
class { 'icingaweb2::module::businessprocess':
git_revision => 'v2.1.0'
}
Parameters
The following parameters are available in the icingaweb2::module::businessprocess
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
git_repository
Data type: String
Set a git repository URL.
git_revision
Data type: Optional[String]
Set either a branch or a tag name, eg. master
or v2.1.0
.
Default value: undef
icingaweb2::module::cube
Installs and enables the cube module.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Examples
class { 'icingaweb2::module::cube':
git_revision => 'v1.0.0'
}
Parameters
The following parameters are available in the icingaweb2::module::cube
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
git_repository
Data type: String
Set a git repository URL.
git_revision
Data type: Optional[String]
Set either a branch or a tag name, eg. master
or v1.0.0
.
Default value: undef
icingaweb2::module::director
Installs and configures the director module.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Examples
class { 'icingaweb2::module::director':
git_revision => 'v1.7.2',
db_host => 'localhost',
db_name => 'director',
db_username => 'director',
db_password => 'supersecret',
import_schema => true,
kickstart => true,
endpoint => 'puppet-icingaweb2.localdomain',
api_username => 'director',
api_password => 'supersecret',
require => Mysql::Db['director']
}
Parameters
The following parameters are available in the icingaweb2::module::director
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
git_repository
Data type: String
Set a git repository URL.
git_revision
Data type: Optional[String]
Set either a branch or a tag name, eg. master
or v1.3.2
.
Default value: undef
db_type
Data type: Enum['mysql', 'pgsql']
Type of your database. Either mysql
or pgsql
.
Default value: 'mysql'
db_host
Data type: Optional[Stdlib::Host]
Hostname of the database.
Default value: undef
db_port
Data type: Stdlib::Port
Port of the database.
Default value: 3306
db_name
Data type: Optional[String]
Name of the database.
Default value: undef
db_username
Data type: Optional[String]
Username for DB connection.
Default value: undef
db_password
Data type: Optional[String]
Password for DB connection.
Default value: undef
import_schema
Data type: Boolean
Import database schema.
Default value: false
kickstart
Data type: Boolean
Run kickstart command after database migration. This requires import_schema
to be true
.
Default value: false
endpoint
Data type: Optional[String]
Endpoint object name of Icinga 2 API. This setting is only valid if kickstart
is true
.
Default value: undef
api_host
Data type: Stdlib::Host
Icinga 2 API hostname. This setting is only valid if kickstart
is true
.
Default value: 'localhost'
api_port
Data type: Stdlib::Port
Icinga 2 API port. This setting is only valid if kickstart
is true
.
Default value: 5665
api_username
Data type: Optional[String]
Icinga 2 API username. This setting is only valid if kickstart
is true
.
Default value: undef
api_password
Data type: Optional[String]
Icinga 2 API password. This setting is only valid if kickstart
is true
.
Default value: undef
db_charset
Data type: String
Default value: 'utf8'
icingaweb2::module::director::service
Installs and configures the director service.
- Note Only systemd is supported by the Icinga Team and this module.
Parameters
The following parameters are available in the icingaweb2::module::director::service
class.
ensure
Data type: Stdlib::Ensure::Service
Whether the director service should be running.
Default value: 'running'
enable
Data type: Boolean
Enable or disable the service.
Default value: true
user
Data type: String
Specifies user to run director service daemon.
Default value: 'icingadirector'
group
Data type: String
Specifies primary group for user to run director service daemon.
Default value: 'icingaweb2'
manage_user
Data type: Boolean
Whether to manage the server user resource.
Default value: true
icingaweb2::module::doc
The doc module provides an interface to the Icinga 2 and Icinga Web 2 documentation.
Parameters
The following parameters are available in the icingaweb2::module::doc
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module. Defaults to present
Default value: 'present'
icingaweb2::module::elasticsearch
The Elasticsearch module displays events from data stored in Elasticsearch.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Examples
class { 'icingaweb2::module::elasticsearch':
git_revision => 'v0.9.0',
instances => {
'elastic' => {
uri => 'http://localhost:9200',
user => 'foo',
password => 'bar',
}
},
eventtypes => {
'filebeat' => {
instance => 'elastic',
index => 'filebeat-*',
filter => 'beat.hostname={host.name}',
fields => 'input_type, source, message',
}
}
}
Parameters
The following parameters are available in the icingaweb2::module::elasticsearch
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
git_repository
Data type: String
Set a git repository URL.
git_revision
Data type: Optional[String]
Set either a branch or a tag name, eg. master
or v1.3.2
.
Default value: undef
instances
Data type: Optional[Hash]
A hash that configures one or more Elasticsearch instances that this module connects to. The defined type
icingaweb2::module::elasticsearch::instance
is used to create the instance configuration.
Default value: undef
eventtypes
Data type: Optional[Hash]
A hash oft ypes of events that should be displayed. Event types are always connected to instances. The defined type
icingaweb2::module::elasticsearch::eventtype
is used to create the event types.
Default value: undef
icingaweb2::module::fileshipper
@example: class { 'icingaweb2::module::fileshipper': git_revision => 'v1.0.1', base_directories => { temp => '/var/lib/fileshipper' }, directories => { 'test' => { 'source' => '/var/lib/fileshipper/source', 'target' => '/var/lib/fileshipper/target', } } }
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Parameters
The following parameters are available in the icingaweb2::module::fileshipper
class.
ensure
Data type: Enum['absent', 'present']
Enables or disables module.
Default value: 'present'
git_repository
Data type: String
Set a git repository URL.
git_revision
Data type: Optional[String]
Set either a branch or a tag name, eg. master
or v1.3.2
.
Default value: undef
base_directories
Data type: Hash
Hash of base directories. These directories can later be selected in the import source (Director).
Default value: {}
directories
Data type: Hash
Deploy plain Icinga 2 configuration files through the Director to your Icinga 2 master.
Default value: {}
icingaweb2::module::generictts
Installs and enables the generictts module.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Examples
class { 'icingaweb2::module::generictts':
git_revision => 'v2.0.0',
ticketsystems => {
'my-ticket-system' => {
pattern => '/#([0-9]{4,6})/',
url => 'https://my.ticket.system/tickets/id=$1',
},
},
}
Parameters
The following parameters are available in the icingaweb2::module::generictts
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
git_repository
Data type: String
Set a git repository URL.
git_revision
Data type: Optional[String]
Set either a branch or a tag name, eg. master
or v2.0.0
.
Default value: undef
ticketsystems
Data type: Hash
A hash of ticketsystems. The hash expects a patten
and a url
for each ticketsystem.
The regex pattern is to match the ticket ID, eg. /#([0-9]{4,6})/
. Place the ticket ID
in the URL, eg. https://my.ticket.system/tickets/id=$1
.
Default value: {}
icingaweb2::module::graphite
The Graphite module draws graphs out of time series data stored in Graphite.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Examples
class { 'icingaweb2::module::graphite':
git_revision => 'v0.9.0',
url => 'https://localhost:8080'
}
Parameters
The following parameters are available in the icingaweb2::module::graphite
class.
ensure
Data type: Enum['absent', 'present']
Enables or disables module.
Default value: 'present'
git_repository
Data type: String
Set a git repository URL.
git_revision
Data type: Optional[String]
Set either a branch or a tag name, eg. master
or v1.3.2
.
Default value: undef
url
Data type: Optional[String]
URL to your Graphite Web/API.
Default value: undef
user
Data type: Optional[String]
A user with access to your Graphite Web via HTTP basic authentication.
Default value: undef
password
Data type: Optional[String]
The users password.
Default value: undef
graphite_writer_host_name_template
Data type: Optional[String]
The value of your Icinga 2 GraphiteWriter's attribute host_name_template
(if specified).
Default value: undef
graphite_writer_service_name_template
Data type: Optional[String]
The value of your icinga 2 GraphiteWriter's attribute service_name_template
(if specified).
Default value: undef
icingaweb2::module::incubator
Installs and enables the incubator module.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Parameters
The following parameters are available in the icingaweb2::module::incubator
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module. Defaults to present
Default value: 'present'
git_repository
Data type: String
Set a git repository URL. Defaults to github.
git_revision
Data type: String
Set either a branch or a tag name, eg. stable/0.7.0
or v0.7.0
.
icingaweb2::module::ipl
Installs and enables the ipl module.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Parameters
The following parameters are available in the icingaweb2::module::ipl
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
git_repository
Data type: String
Set a git repository URL.
git_revision
Data type: String
Set either a branch or a tag name, eg. stable/0.7.0
or v0.7.0
.
icingaweb2::module::monitoring
Requirements:
-
IDO feature in Icinga 2 (MySQL or PostgreSQL)
-
ApiUser
object in Icinga 2 with proper permissionsclass {'icingaweb2::module::monitoring': ido_host => 'localhost', ido_db_type => 'mysql', ido_db_name => 'icinga2', ido_db_username => 'icinga2', ido_db_password => 'supersecret', commandtransports => { icinga2 => { transport => 'api', username => 'icingaweb2', password => 'supersecret', } } }
-
Note At first have a look at the Monitoring module documentation.
Examples
This module is mandatory for almost every setup. It connects your Icinga Web interface to the Icinga 2 core. Current and history information are queried through the IDO database. Actions such as Check Now
, Set Downtime
or Acknowledge
are send to the Icinga 2 API.
Parameters
The following parameters are available in the icingaweb2::module::monitoring
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
protected_customvars
Data type: Variant[String, Array[String]]
Custom variables in Icinga 2 may contain sensible information. Set patterns for custom variables that should be hidden in the web interface.
Default value: ['*pw*', '*pass*', 'community']
ido_type
Data type: Enum['mysql', 'pgsql']
Type of your IDO database. Either mysql
or pgsql
.
Default value: 'mysql'
ido_host
Data type: Optional[Stdlib::Host]
Hostname of the IDO database.
Default value: undef
ido_port
Data type: Stdlib::Port
Port of the IDO database.
Default value: 3306
ido_db_name
Data type: Optional[String]
Name of the IDO database.
Default value: undef
ido_db_username
Data type: Optional[String]
Username for IDO DB connection.
Default value: undef
ido_db_password
Data type: Optional[String]
Password for IDO DB connection.
Default value: undef
ido_db_charset
Data type: Optional[String]
The character set to use for the database connection.
Default value: undef
commandtransports
Data type: Hash
A hash of command transports.
Default value: {}
icingaweb2::module::puppetdb
Installs and configures the puppetdb module.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Examples
Set up the PuppetDB module and configure two custom SSL keys:
$certificates = {
'pupdb1' => {
:ssl_key => '-----BEGIN RSA PRIVATE KEY----- abc...',
:ssl_cacert => '-----BEGIN RSA PRIVATE KEY----- def...',
},
'pupdb2' => {
:ssl_key => '-----BEGIN RSA PRIVATE KEY----- zyx...',
:ssl_cacert => '-----BEGIN RSA PRIVATE KEY----- wvur...',
},
}
class { '::icingaweb2::module::puppetdb':
git_revision => 'master',
ssl => 'none',
certificates => $certificates,
}
Set up the PuppetDB module and configure the hosts SSL key to connect to the PuppetDB host:
class {'::icingaweb2::module::puppetdb':
git_revision => 'master',
ssl => 'puppet',
host => 'puppetdb.example.com',
}
Parameters
The following parameters are available in the icingaweb2::module::puppetdb
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
git_repository
Data type: String
Set a git repository URL.
git_revision
Data type: Optional[String]
Set either a branch or a tag name, eg. master
or v1.3.2
.
Default value: undef
ssl
Data type: Enum['none', 'puppet']
How to set up ssl certificates. To copy certificates from the local puppet installation, use puppet
.
Default value: 'none'
host
Data type: Optional[Stdlib::Host]
Hostname of the server where PuppetDB is running. The ssl
parameter needs to be set to puppet
.
Default value: undef
certificates
Data type: Hash
Hash with icingaweb2::module::puppetdb::certificate resources.
Default value: {}
icingaweb2::module::reactbundle
Installs and enables the reactbundle module.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Parameters
The following parameters are available in the icingaweb2::module::reactbundle
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
git_repository
Data type: String
Set a git repository URL.
git_revision
Data type: String
Set either a branch or a tag name, eg. stable/0.7.0
or v0.7.0
.
icingaweb2::module::translation
Installs and configures the translation module.
Parameters
The following parameters are available in the icingaweb2::module::translation
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
icingaweb2::module::vsphere
The vSphere module extends the Director. It provides import sources for virtual machines and physical hosts from vSphere.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Parameters
The following parameters are available in the icingaweb2::module::vsphere
class.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
git_repository
Data type: String
Set a git repository URL.
git_revision
Data type: Optional[String]
Set either a branch or a tag name, eg. stable/0.7.0
or v0.7.0
.
Default value: undef
Defined types
icingaweb2::config::authmethod
Manage Icinga Web 2 authentication methods. Auth methods may be chained by setting proper ordering.
Examples
Create an authentication method (db) and reference to a resource:
icingaweb2::config::authmethod { 'db-auth':
backend => 'db',
resource => 'my-sql',
order => 20,
}
Create a LDAP authmethod:
icingaweb2::config::authmethod { 'ldap-auth':
backend => 'ldap',
resource => 'my-ldap',
ldap_user_class => 'user',
ldap_filter => '(memberof:1.2.840.113556.1.4.1941:=CN=monitoring,OU=groups,DC=icinga,DC=com)',
ldap_user_name_attribute => 'userPrincipalName',
order => '05',
}
Parameters
The following parameters are available in the icingaweb2::config::authmethod
defined type.
backend
Data type: Enum['external', 'ldap', 'msldap', 'db']
Select between 'external', 'ldap', 'msldap' or 'db'. Each backend may require other settings.
Default value: undef
resource
Data type: Optional[String]
The name of the resource defined in resources.ini.
Default value: undef
ldap_user_class
Data type: Optional[String]
LDAP user class. Only valid if backend
is ldap
or msldap
.
Default value: undef
ldap_user_name_attribute
Data type: Optional[String]
LDAP attribute which contains the username. Only valid if backend
is ldap
or msldap
.
Default value: undef
ldap_filter
Data type: Optional[String]
LDAP search filter. Only valid if backend
is ldap
or msladap
.
Default value: undef
ldap_base_dn
Data type: Optional[String]
LDAP base DN. Only valid if backend
is ldap
or msldap
.
Default value: undef
domain
Data type: Optional[String]
Domain for domain-aware authentication
Default value: undef
order
Data type: Variant[String, Integer]
Multiple authentication methods can be chained. The order of entries in the authentication configuration determines the order of the authentication methods.
Default value: '01'
icingaweb2::config::groupbackend
Groups of users can be stored either in a database, LDAP or ActiveDirectory. This defined type configures backends that store groups.
Examples
A group backend for groups stored in LDAP:
icingaweb2::config::groupbackend { 'ldap-groups':
backend => 'ldap',
resource => 'my-ldap',
ldap_group_class => 'group',
ldap_group_name_attribute => 'cn',
ldap_group_member_attribute => 'member',
ldap_base_dn => 'ou=groups,dc=icinga,dc=com',
domain => 'icinga.com',
}
If you have imported the database schema (parameter import_schema
), this backend was also created automatically:
icingaweb2::config::groupbackend { 'mysql-backend':
backend => 'db',
resource => 'my-sql',
}
Parameters
The following parameters are available in the icingaweb2::config::groupbackend
defined type.
group_name
Data type: String
Name of the resources. Resources are referenced by their name in other configuration sections.
Default value: $title
backend
Data type: Enum['db', 'ldap', 'msldap']
Type of backend. Valide values are: db
, ldap
and msldap
. Each backend supports different settings,
see the parameters for detailed information.
Default value: undef
resource
Data type: String
The resource used to connect to the backend. The resource contains connection information.
Default value: undef
ldap_user_backend
Data type: Optional[String]
A group backend can be connected with an authentication method. This parameter references the auth method.
Only valid with backend ldap
or msldap
.
Default value: undef
ldap_group_class
Data type: Optional[String]
Class used to identify group objects. Only valid with backend ldap
.
Default value: undef
ldap_group_filter
Data type: Optional[String]
Use a LDAP filter to receive only certain groups. Only valid with backend ldap
or msldap
.
Default value: undef
ldap_group_name_attribute
Data type: Optional[String]
The group name attribute. Only valid with backend ldap
.
Default value: undef
ldap_group_member_attribute
Data type: Optional[String]
The group member attribute. Only valid with backend ldap
.
Default value: undef
ldap_base_dn
Data type: Optional[String]
Base DN that is searched for groups. Only valid with backend ldap
with msldap
.
Default value: undef
ldap_nested_group_search
Data type: Optional[Boolean]
Search for groups in groups. Only valid with backend msldap
.
Default value: undef
domain
Data type: Optional[String]
Domain for domain-aware authentication.
Default value: undef
order
Data type: Variant[String, Integer]
Multiple authentication methods can be chained. The order of entries in the authentication configuration determines the order of the authentication methods.
Default value: '01'
icingaweb2::config::resource
Create and remove Icinga Web 2 resources. Resources may be referenced in other configuration sections.
Examples
Create a MySQL DB resource:
icingaweb2::config::resource{ 'my-sql':
type => 'db',
db_type => 'mysql',
host => 'localhost',
port => '3306',
db_name => 'icingaweb2',
db_username => 'icingaweb2',
db_password => 'supersecret',
}
Create a LDAP resource:
icingaweb2::config::resource{ 'my-ldap':
type => 'ldap',
host => 'localhost',
port => 389,
ldap_root_dn => 'ou=users,dc=icinga,dc=com',
ldap_bind_dn => 'cn=icingaweb2,ou=users,dc=icinga,dc=com',
ldap_bind_pw => 'supersecret',
}
Parameters
The following parameters are available in the icingaweb2::config::resource
defined type.
resource_name
Data type: String
Name of the resources. Resources are referenced by their name in other configuration sections.
Default value: $title
type
Data type: Enum['db', 'ldap']
Supported resource types are db
and ldap
.
host
Data type: Optional[String]
Connect to the database or ldap server on the given host. For using unix domain sockets, specify 'localhost' for MySQL and the path to the unix domain socket directory for PostgreSQL. When using the 'ldap' type you can also provide multiple hosts separated by a space.
Default value: undef
port
Data type: Optional[Stdlib::Port]
Port number to use.
Default value: undef
db_type
Data type: Optional[Enum['mysql', 'pgsql']]
Supported DB types are mysql
and pgsql
.
Default value: undef
db_name
Data type: Optional[String]
The database to use. Only valid if type
is db
.
Default value: undef
db_username
Data type: Optional[String]
The username to use when connecting to the server. Only valid if type
is db
.
Default value: undef
db_password
Data type: Optional[String]
The password to use when connecting to the server. Only valid if type
is db
.
Default value: undef
db_charset
Data type: Optional[String]
The character set to use for the database connection. Only valid if type
is db
.
Default value: undef
ldap_root_dn
Data type: Optional[String]
Root object of the tree, e.g. 'ou=people,dc=icinga,dc=com'. Only valid if type
is ldap
.
Default value: undef
ldap_bind_dn
Data type: Optional[String]
The user to use when connecting to the server. Only valid if type
is ldap
.
Default value: undef
ldap_bind_pw
Data type: Optional[String]
The password to use when connecting to the server. Only valid if type
is ldap
.
Default value: undef
ldap_encryption
Data type: Optional[Enum['none', 'starttls', 'ldaps']]
Type of encryption to use: none (default), starttls, ldaps. Only valid if type
is ldap
.
Default value: 'none'
ldap_timeout
Data type: Integer
Timeout for the ldap connection.
Default value: 5
icingaweb2::config::role
Roles define a set of permissions that may be applied to users or groups.
- Note Availble permissions in module monitoring:
| Description | Value |
|-------------|-------|
| Allow everything |
*
| | Allow to share navigation items |application/share/navigation
| | Allow to adjust in the preferences whether to show stacktraces |application/stacktraces
| | Allow to view the application log |application/log
| | Grant admin permissions, e.g. manage announcements |admin
| | Allow config access |config/*
| | Allow access to module doc |module/doc
| | Allow access to module monitoring |module/monitoring
| | Allow all commands |monitoring/command/*
| | Allow scheduling host and service checks |monitoring/command/schedule-check
| | Allow acknowledging host and service problems |monitoring/command/acknowledge-problem
| | Allow removing problem acknowledgements |monitoring/command/remove-acknowledgement
| | Allow adding and deleting host and service comments |monitoring/command/comment/*
| | Allow commenting on hosts and services |monitoring/command/comment/add
| | Allow deleting host and service comments |monitoring/command/comment/delete
| | Allow scheduling and deleting host and service downtimes |monitoring/command/downtime/*
| | Allow scheduling host and service downtimes |monitoring/command/downtime/schedule
| | Allow deleting host and service downtimes |monitoring/command/downtime/delete
| | Allow processing host and service check results |monitoring/command/process-check-result
| | Allow processing commands for toggling features on an instance-wide basis |monitoring/command/feature/instance
| | Allow processing commands for toggling features on host and service objects |monitoring/command/feature/object/*
) | | Allow processing commands for toggling active checks on host and service objects |monitoring/command/feature/object/active-checks
| | Allow processing commands for toggling passive checks on host and service objects |monitoring/command/feature/object/passive-checks
| | Allow processing commands for toggling notifications on host and service objects |monitoring/command/feature/object/notifications
| | Allow processing commands for toggling event handlers on host and service objects |monitoring/command/feature/object/event-handler
| | Allow processing commands for toggling flap detection on host and service objects |monitoring/command/feature/object/flap-detection
| | Allow sending custom notifications for hosts and services |monitoring/command/send-custom-notification
| | Allow access to module setup |module/setup
| | Allow access to module test |module/test
| | Allow access to module translation |module/translation
|
Examples
Create role that allows only hosts beginning with linux-*
:
icingaweb2::config::role{ 'linux-user':
groups => 'linuxer',
permissions => '*',
filters => {
'monitoring/filter/objects' => 'host_name=linux-*'
}
}
Create role that allows a user to see only hosts beginning with linux-*
:
icingaweb2::config::role{'linux-user':
users => 'bob, pete',
permissions => '*',
filters => {
'monitoring/filter/objects' => 'host_name=linux-*',
}
}
Parameters
The following parameters are available in the icingaweb2::config::role
defined type.
role_name
Data type: String
Name of the role.
Default value: $title
users
Data type: Optional[String]
Comma separated list of users this role applies to.
Default value: undef
groups
Data type: Optional[String]
Comma separated list of groups this role applies to.
Default value: undef
permissions
Data type: Optional[String]
Comma separated lsit of permissions. Each module may add it's own permissions. Examples are
- Allow everything: '*'
- Allow config access: 'config/*'
- Allow access do module monitoring: 'module/monitoring'
- Allow scheduling checks: 'monitoring/command/schedule-checks'
- Grant admin permissions: 'admin'
Default value: undef
filters
Data type: Hash
Hash of filters. Modules may add new filter keys, some sample keys are:
- application/share/users
- application/share/groups
- monitoring/filter/objects
- monitoring/blacklist/properties A string value is expected for each used key. For example:
- monitoring/filter/objects = "host_name!=win"
Default value: {}
icingaweb2::inisection
Manage settings in INI configuration files.
Examples
Create the configuration file and set two settings for the section global
:
include icingawebeb2
icingaweb2::inisection { '/path/to/config.ini':
settings => {
'global' => {
'setting1' => 'value',
'setting2' => 'value',
},
},
}
Parameters
The following parameters are available in the icingaweb2::inisection
defined type.
target
Data type: Stdlib::Absolutepath
Absolute path to the configuration file.
section_name
Data type: String
Name of the target section. Settings are set under [$section_name]
Default value: $title
settings
Data type: Hash
A hash of settings and their settings. Single settings may be set to absent.
Default value: {}
order
Data type: Variant[String, Integer]
Ordering of the INI section within a file. Defaults to 01
Default value: '01'
icingaweb2::module
Download, enable and configure Icinga Web 2 modules.
- Note If you want to use
git
asinstall_method
, the CLIgit
command has to be installed. You can manage it yourself as package resource or declare the package name in icingaweb2 class parameterextra_packages
.
Examples
$conf_dir = $::icingaweb2::globals::conf_dir
$module_conf_dir = "${conf_dir}/modules/mymodule"
$settings = {
'section1' => {
'target' => "${module_conf_dir}/config1.ini",
'settings' => {
'setting1' => 'value1',
'setting2' => 'value2',
}
},
'section2' => {
'target' => "${module_conf_dir}/config2.ini",
'settings' => {
'setting3' => 'value3',
'setting4' => 'value4',
}
}
}
Parameters
The following parameters are available in the icingaweb2::module
defined type.
ensure
Data type: Enum['absent', 'present']
Enable or disable module.
Default value: 'present'
module
Data type: String
Name of the module.
Default value: $title
module_dir
Data type: Stdlib::Absolutepath
Target directory of the module.
Default value: "${::icingaweb2::module_path}/${title}"
install_method
Data type: Enum['git', 'none', 'package']
Install methods are git
, package
and none
is supported as installation method. Defaults to git
Default value: 'git'
git_revision
Data type: String
Tag or branch of the git repository. This setting is only valid in combination with the installation method git
.
Default value: 'master'
package_name
Data type: Optional[String]
Package name of the module. This setting is only valid in combination with the installation method package
.
Default value: undef
settings
Data type: Hash
A hash with the module settings. Multiple configuration files with ini sections can be configured with this hash.
The module_name
should be used as target directory for the configuration files.
Default value: {}
git_repository
Data type: Optional[String]
Default value: undef
Change Log
v3.0.0 (2020-10-14)
Implemented enhancements:
- Add new param manage_repos to replace manage_repo in the future #274
- Replace class repo with new class from module icinga #260
v2.4.1 (2020-08-31)
Fixed bugs:
- Release defined resource commandtransport from private #264
- fix icingaweb2::module::director::service systemd::unit_file param name error #273 (jhoblitt)
- fix travis-ci failures #270 (jhoblitt)
Closed issues:
- icingaweb2::module::director::service systemd::unit_file param name error #272
- travis-ci rubocop check is failing on master #271
- travis-ci
check:git\_ignore
check is failing on master #269 - manage business process source files #265
- Update Package version #262
v2.4.0 (2020-07-06)
Implemented enhancements:
- add pdk support #259
- rework documentation #258
- Rework to use module data #257
- Add Support for RHEL 8 #255
- Add Support for Debian 10 #254
- Update params for authmethod msldap #252 (gomesar9)
- Add new 1.7.x dependencies #248 (lbetz)
- Add timeout to ldap resource #245 (joernott)
- Add logging config option php #242 (lbetz)
- Document logging config option 'php' #241 (lippserd)
- Add parameter poold_purge to class phpfpm #239 (dhoppe)
- Update and verify acceptance tests #234 (lazyfrosch)
Fixed bugs:
- Multiple LDAP Hosts do not work anymore #261
- Class ::icingaweb2::module::monitoring doesn't work with Documentation defaults #253
- Ensure config directory mode is set with setgid #251 (lazyfrosch)
- git_revision is a required parameter #249 (attachmentgenie)
- Remove question marks of parameter db_port #238 (dhoppe)
Closed issues:
- Add new 1.7.x dependencies for director module: ipl / reactbundle / incubator #247
Merged pull requests:
v2.3.1 (2019-06-25)
Implemented enhancements:
- metadata: Raise requirements for puppetlabs modules #236 (lazyfrosch)
Fixed bugs:
- possible regression: new cookie path parameter may break existing installs #235
- config: Let cookie_path be undef by default #237 (lazyfrosch)
v2.3.0 (2019-05-20)
Implemented enhancements:
- Support puppet 6 #220
- add logging facility and application to config #230 (costela)
- Support Puppet 6 #226 (wdschei)
- add config section to adjust the cookie path #218 (XnS)
Fixed bugs:
- Parameter url of module::graphite has to be optional #223
- Docs: icingaweb2::config::resource 'port' requires an integer, not a string #231 (dnsmichi)
Closed issues:
- support puppet/stdlib > 5.0 #232
- Error logging_path needs to be Stdlib::Absolutepath, got String instead #224
- icingaweb2::module::puppetdb tests are failing #216
Merged pull requests:
- Set confdir in the rspec context (fixes #216) #217 (johanfleury)
- Avoid duplicate inisection declarations #215 (johanfleury)
v2.2.0 (2018-05-14)
Implemented enhancements:
- 'icinga-icingaweb2' (v2.1.0) requires 'puppetlabs-vcsrepo' (>= 1.3.0 \< 2.0.0) #212
Closed issues:
- Should be possible to specify a relative path for icingaweb2::module::fileshipper target #209
Merged pull requests:
v2.1.0 (2018-01-23)
Implemented enhancements:
- missing domain attribute for icingaweb2::config::authmethod #203
- Add elasticsearch module #193
- Add graphite module #192
- Update apache2 example #191
- Add default backend in groups.ini #188
- Links to apache2 and nginx examples doesn't work #185
- Add vSphere module #183
- Add fileshipper module #182
Fixed bugs:
- Setting up icingaweb2 with postgresql on a different port than 5432 leads to an error #195
- protected_customvars handled incorrectly? #206
- puppetdb: issue if host does not resolve to puppetdb #197
Merged pull requests:
- added domain attribute to icingaweb2::config::groupbackend #205 (spaolo)
- added domain attribute to icingaweb2::config::authmethod #204 (spaolo)
- Provide specific port to mysql and postgresql #196 (Faffnir)
- Rename default administrative user to 'icingaadmin' #194 (dnsmichi)
- Add missing curly bracket and trailing commas #189 (rgevaert)
- Fix protected_customvars bugs and papercuts #186 (olasd)
v2.0.1 (2017-12-28)
Implemented enhancements:
- Support fcgi as example for apache #201
Merged pull requests:
v2.0.0 (2017-10-11)
Implemented enhancements:
- Store preferences in database #166
- Support icinga2 API command transport #74
- Use RSpec helper rspec-puppet-facts #70
- Support LDAP auth_backend #69
- Manage icingaweb2 user #68
- Updating graphite with more config #66
- Adding monitoring module #65
- [dev.icinga.com #9243] add ldaps to resource_ldap.pp #56
- [dev.icinga.com #9155] Add module generictts #54
- Update Docs Install Icinga Web icinga2 vs icingaweb2 #174
- Add translation module #169
- Parameterize conf_user #145
- Update version in Puppet Forge #141
- Add changelog #128
- Add Cube module #127
- Add Director module #126
- Add business process module #125
- Refactor monitoring module class #124
- Add defined type to generally handle module installations and configuration #122
- Rename classes to icingaweb2::module::modulename #121
- Remove unsupported modules #120
- Default auth mechanism #119
- Add defined type for roles #118
- Add defined type to handle config.ini #117
- Add defined type to handle groups.ini #116
- Add defined type to handle authentication.ini #115
- Add type to handle resources.ini #114
- Add defined type that handles Ini configurations #113
- Update basic specs #112
- Add release guide #111
- Add testing guide #110
- Add contributing guide #109
- Add some basic examples #108
- Basic Apache configuration with example #107
- Add reference documentation #106
- Update general documentation #105
- Create parameter manage_package #104
- Remove deprecated parameters #103
- General configuration #102
- Remove git installation method for Icinga Web 2 #101
- Ensure support for certain operating systems #100
- Add header with inline documentation to all files #99
- Support initialize for PostgreSQL #82
- Acceptance tests #78
- Adding database initialization #64
- Updating monitoring transports #75 (lazyfrosch)
- Update module base #73 (lazyfrosch)
- Refactoring repository management #72 (lazyfrosch)
- Using rspec-puppet-facts for new spec #71 (lazyfrosch)
Fixed bugs:
- Dependency puppetlabs/concat conflicts with puppet-icinga2 #165
- rspec tests broken due to unintepreted facts #161
- Can't manage multiple [config] sections because of duplicate resource #146
- Fixing config files permissions #67
- [dev.icinga.com #12142] Why does initialize.pp require /root/.my.cnf on RedHat/CentOS, not Debian/Ubuntu? #61
- [dev.icinga.com #11876] Path for mysql-command is missing #60
- [dev.icinga.com #11719] Missing packages if APT::Install-Recommends "false"; #59
- [dev.icinga.com #11584] what is the standard password set by initialize.pp? #58
- [dev.icinga.com #11507] installing icinga web2 #57
- Install dependencies by default #176
- Logging directory is not created by module #172
- Incorrect config directory access mode on Debian #85
- Package managers handle dependencies. #87 (tdb)
- deployment: Correct directory management #76 (lazyfrosch)
Closed issues:
- /etc/icingaweb2/modules isn't created #158
- Allow muliple API Host for icingaweb2::module::monitoring #155
- icingaweb2::module::module_dir parameter default value should probably not be undef #147
- Missing Configuration #138
- Syntax error at 'resource_name'; expected '}' #136
- Please move development to master #134
- Git install method is missing minified assets #129
- Add default modules #123
- How to enable module monitoring Via Puppet #95
- It would be nice to have possibility to change certain file/directory permissions #94
- Could not find declared class icingaweb2::mod::monitoring #93
- The parameter 'ido_db_host' is declared more than once #92
- missing groups.ini #91
- Add Debian Stretch to the compatibility list? #89
- Dependencies incorrect on Ubuntu 16.04+ #88
- Improve Apache integration and document it #83
- Default credentials for login #80
- Deprecate default install method #77
- [dev.icinga.com #9154] Add module pnp4nagios #53
- Icingaweb2::Module::Monitoring doesn't actually install the module #160
- Add generictts module #154
- add icingaweb2::module::puppetdb #152
- add icingaweb2::module::doc #150
- Icingaweb2 schema only created on second run when configured along with icinga2 #144
- Correct documentation for authentication configuration #143
- Align documentation for duplicate repository #131
- Non compatible dependencies between icinga2 and Icingaweb2 latest releases #98
- Roles setting is not up to date and is not supporting businessprocess-prefix #96
- Resources.ini should not be world-readable #90
- Documentation updates #79
Merged pull requests:
- Add example manifest for Grafana module #181 (druchoo)
- Add 'LDAP Base DN' to 'User Backends' #180 (druchoo)
- Removed puppetlabs-apache from dependencies #178 (noqqe)
- Manage logging directory and file #173 (baurmatt)
- Add translation module #170 (baurmatt)
- Allow preferences to be stored in db #168 (baurmatt)
- Add git repository config #167 (tdukaric)
- Add a context per operating system #162 (baurmatt)
- Add modules directory #159 (baurmatt)
- Loosen concat version restrictions #156 (quixoten)
- Implement puppetdb module #153 (rgevaert)
- Implement icingaweb2::module::doc #151 (rgevaert)
- Prevent duplicate resources errors #149 (rgevaert)
- Correct authentication configuration documentation #142 (rgevaert)
- Add GitHub issue template #137 (dnsmichi)
- Add nginx example #84 (prozach)
- Fixing testing issues #81 (lazyfrosch)
- Update URLs to GitHub #62 (bobapple)
- testing: Updating travis settings #51 (lazyfrosch)
- remove dependency on concat module #50 (lbischof)
- substituting non existing parameter #49 (attachmentgenie)
- Fix permissions #30 (petems)
- Change sql_schema_location if using git #29 (petems)
- Allow multiple commandtransports #157 (baurmatt)
1.0.6 (2015-11-10)
1.0.5 (2015-08-04)
1.0.4 (2015-06-24)
Merged pull requests:
1.0.3 (2015-05-07)
1.0.2 (2015-05-07)
1.0.1 (2015-05-07)
1.0.0 (2015-05-07)
Implemented enhancements:
- [dev.icinga.com #9158] Add module graphite #55
- [dev.icinga.com #9153] Add module businessprocess #52
- Fix authentication configuration #8 (lazyfrosch)
Merged pull requests:
- Don't put blank host/service filters in roles.ini #13 (jamesweakley)
- Moving away from templates to usign inifile from Puppetlabs/inifile #7 (smbambling)
* This Change Log was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 4.16.0 < 7.0.0)
- puppetlabs/concat (>= 2.0.1 < 7.0.0)
- icinga/icinga (>= 1.0.0 < 2.0.0)
- puppetlabs/vcsrepo (>= 1.3.0 < 4.0.0)
- camptocamp/systemd (>= 1.1.1 < 3.0.0)
Copyright (C) 2012 Tom De Vylder 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.