Releasing Icinga Ansible collection v0.3.0

by | Oct 10, 2023

This release of the collection will feature a whole set of possibilities to deploy a complete Icinga 2 environment.

Before diving deep into the collection, a quick recap of all roles which were available and which are included in the current release v0.3.0.

  • repos: The role to manage all repos from the Icinga space. Which are the official, subscription repos.
  • icinga2: The role manages everything from core features, certificate creation to local monitoring configuration.

New Roles in v0.3.0

  • icingaweb2: The role manages Icinga Web 2 configuration and a few basic modules.
    • Module Director: Manages the configuration and installation of the Director.
    • Module IcingaDB: Manages the configuration of the IcingaDB monitoring module.
    • Module Monitoring: Manages the configuration of the legacy monitoring module.
  • icingadb: Role to manage IcingaDB configuration and service.
    • Can import DB Schema into existing DB.
  • icingadb_redis: Role to manage the IcingaDB Redis configuration and service.
  • monitoring_plugins: Role to manage and install monitoring plugins on different operating systems.

To further enhance the Icinga 2 installation process via Ansible those roles are vital for a successful deployment.

The Icinga DB is the future backend of Icinga 2, this can be handled with our icingadb and icingadb_redis roles.

The role can import the current schema into an existing database and furthermore can configure and use TLS connections to the DB. (Upgrading is not supported)

Example:

- name: Install IcingaDB
  hosts: icingadb
  become: true
  vars:
    icingadb_database_type: pgsql
    icingadb_database_host: postgresql.example.com
    icingadb_database_port: 5432
    icingadb_database_user: pg-icingadb
    icingadb_database_password: helloworld$123
    icingadb_database_tls: true
    icingadb_database_cert: /etc/icingadb/icingadb.crt
    icingadb_database_key: /etc/icingadb/icingadb.key
    icingadb_database_import_schema: true

    icingadb_redis_binds:
      - 127.0.0.1
  roles:
    - role: icinga.icinga.icingadb
    - role: icinga.icinga.icingadb_redis

 

 

Icinga Web is the component to visualize everything in the Icinga environment. The role currently can configure everything in Icinga Web including a few modules.
In the future more modules will be provided and the ability to install modules directly from the repository.

At the current state it is possible to manage all configurations from resources to roles and the modules Director, Monitoring and IcingaDB.

In addition the role can import the latest database schema and create a first admin user. This will only be available if the icingaweb2_dbvariable is used.
Every other resource can later be defined at icingaweb2_resources.

icingaweb2_admin_username: username
icingaweb2_admin_password: pa$$word

icingaweb2_db_import_schema: true

icingaweb2_db:
  type: mysql
  name: icingaweb
  host: 127.0.0.1
  user: icingaweb
  password: icingaweb

 

To configure modules use the icingaweb2_modules to enable or manage them. It is possible only to install and configure them without activating them.
Furthermore modules can have certain variables which are not part of the configuration but enable a specific behaviour like importing the database schema.

Please checkout the documentation before using the roles!

icingaweb2_modules:
  director:
    enabled: true
    source: package
    import_schema: true
    run_kickstart: true
    kickstart:
      config:
        endpoint: icinga-server.fqdn
        host: 127.0.0.1
        username: root
        password: root
    config:
      db:
        resource: director_db

 

And the final component of every monitoring environment are the plugins. This role manages the installation/removal of many well known check plugins typically used in monitoring systems.
You can define which plugins you need on the system and the role will decide which packages to install or remove.

icinga_monitoring_plugins_check_commands:
    - "ssmtp"
    - "disk"
    - "load"
    - "smtp"
    - "dns"

We want to say a big Thank you! to all people who contributed to this project and helped us craft this release!
If you also want to help out, or read the whole changelog, check out it’s page on GitHub!

You May Also Like…

Icinga Certification is out!

Icinga Certification is out!

The Icinga certification is a topic some of you have been waiting for impatiently. Some got a glimpse at it already at...

Subscribe to our Newsletter

A monthly digest of the latest Icinga news, releases, articles and community topics.