Puppet Module to manage Icinga repositories and provides a base class for Icinga Redis




577 latest version

5.0 quality score

Version information

  • 2.0.0 (latest)
  • 1.0.3
  • 1.0.2
  • 1.0.1
  • 1.0.0
  • 0.1.2
  • 0.1.1
  • 0.1.0
released Jan 11th 2021
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
  • CentOS

Start using this module


icinga/icinga — version 2.0.0 Jan 11th 2021


Icinga Logo

Table of Contents

  1. Description
  2. Setup - The basics of getting started with icinga
  3. Usage - Configuration options and additional functionality
  4. Reference
  5. Release notes


This module provides the management of upstrem repositories that can use by the other Icinga modules and a base class to handle the Icinga Redis package.

Changes in v2.0.0

  • Earlier the parameter manage_* enables or disables a repository but it was still managed. Now the management is enabled or disabled, see Enable or disable repositories.


What the Icinga Puppet module supports

  • Involves the needed repositories to install icinga2, icingadb and icingaweb2:
  • The Icinga Project repository for the stages: stable, testing or nightly builds
  • EPEL repository for RHEL simular platforms
  • Backports repository for Debian and Ubuntu
  • The Class to install Icinga-Redis, a requirement for the IcingaDB module.

Setup Requirements

This module supports:

  • [puppet] >= 4.10 < 7.0.0

And requiers:

  • [puppetlabs/stdlib] >= 5.0.0 < 7.0.0
    • If Puppet 6 is used a stdlib 5.1 or higher is required
  • [puppetlabs/apt] >= 6.0.0 < 8.0.0
  • [puppet/zypprepo] >= 2.2.1 < 4.0.0
  • [puppetlabs/yumrepo_core] >= 1.0.0
    • If Puppet 6 is used

Soft dependencies to manage yourself:

  • [puppet/redis] >= 4.2.1 < 7.0.0
    • If class icinga::redis is used

Beginning with icinga

Add this declaration to your Puppetfile:

mod 'icinga',
  :git => 'https://github.com/icinga/puppet-icinga.git',
  :tag => 'v2.0.0'

Then run:

bolt puppetfile install

Or do a git clone by hand into your modules directory:

git clone https://github.com/icinga/puppet-icinga.git icinga

Change to icinga directory and check out your desired version:

cd icinga
git checkout v2.0.0


By default the upstream Icinga repository for stable release are involved.

include ::icinga::repos

To setup the testing repository for release candidates use instead:

class { '::icinga::repos':
  manage_stable  => false,
  manage_testing => true,

Or the nightly builds:

class { '::icinga::repos':
  manage_stable  => false,
  manage_nightly => true,

Other possible needed repositories like EPEL on RHEL or the Backports on Debian can also be involved:

class { '::icinga::repos':
  manage_epel         => true,
  configure_backports => true,

The prefix configure means that the repository is not manageable by the module. But backports can be configured by the class apt::backports, that is used by this module.

Enable and Disable Repositories

When manage is set to true for a repository the ressource is managed and the repository is enabled by default. To switch off a repository again, it still has to be managed and the corresponding parameter has to set via hiera. The module does a deep merge lookup for a hash named icinga::repos. Allowed keys are:

  • icinga-stable-release
  • icinga-testing-builds
  • icinga-snapshot-builds
  • epel (only on RHEL Enterprise platforms)

An example for Yum or Zypper based platforms to change from stable to testing repo:

icinga::repos::manage_testing: true
    enabled: 0

Or on Apt based platforms:

icinga::repos::manage_testing: true
    ensure: absent

Installing from Non-Upstream Repositories

To change to a non upstream repository, e.g. a local mirror, the repos can be customized via hiera. The module does a deep merge lookup for a hash named icinga::repos. Allowed keys are:

  • icinga-stable-release
  • icinga-testing-builds
  • icinga-snapshot-builds
  • epel (only on RHEL Enterprise platforms)

An example to configure a local mirror of the stable release:

    baseurl: 'http://repo.example.com/icinga/epel/$releasever/release/'
    gpgkey: http://repo.example.com/icinga/icinga.key

IMPORTANT: The configuration hash depends on the platform an requires one of the following resources:

Also the Backports repo on Debian can be configured like the apt class of course, see https://forge.puppet.com/puppetlabs/apt to configure the class apt::backports via Hiera.

As an example, how you configure backpaorts on a debian squeeze. For squeeze the repository is already moved to the unsupported archive:

    content: 'Acquire::Check-Valid-Until no;'
    priority: 99
    notify_update: true
apt::backports::location: 'http://archive.debian.org/debian'



Release Notes

This code is a very early release and may still be subject to significant changes.