Skip to content

Releases: NETWAYS/ansible-collection-icinga

0.4.4

27 Oct 10:37

Choose a tag to compare

v0.4.4

Release Summary

Introduction of Icinga for Windows role ifw and performance increase in deployment of icinga2_objects.

Major Changes

  • Introduction of role ifw - Icinga for Windows: This role allows to install the Icinga PowerShell Framework, manage components and repositories, and install and configure Icinga 2 through Icinga for Windows.

  • Module ifw_backgrounddaemon: Registers/unregisters an Icinga for Windows background daemon.

  • Module ifw_component: Installs/removes/updates Icinga for Windows components (e.g. agent, plugins).

  • Module ifw_restapicommand: Adds/removes commands to/from the whitelist/blacklist of the Icinga for Windows REST-Api.

  • The performance of the action plugin icinga2_object has been greatly improved. Instead of writing individual objects to files and later merging them, they are instead now merged in memory on a per destination basis. This means that configuration files no longer have to be assembled after the fact.

    This also drops the order parameter previously used to define the order in which objects are written if they belong to the same destination file. The new behavior only changes the order in the files but does not change the end result.

    A performance gain of up to 80% has been seen in testing.

Minor Changes

  • In the icinga2 role objects are collected from different places before writing them to files. Duplicates could occur which was not taken care of. All collected objects are now deduplicated using the unique filter right before writing to save some time during execution.
  • The deb repositories made available by the repos role now use the deb822 format. This can lead to APT warnings on systems that already have the repositories deployed using the old format (sources.list). To fix this, simply remove the old icinga.list file after the repositories have been deployed in the new format.
  • The error messages about unsupported operating systems have been tuned. They should now appear if and only if the actual OS is in fact not supported instead of appearing after unrelated task failures.

Bugfixes

  • icingaweb2_roles was not deployed at all if icingaweb2_admin_username and icingaweb2_admin_password were missing. Now for both, the predefined admin role and user-defined icingaweb2_roles, the respective variables are tested for correctly when creating roles.ini. Thus, the creation of an initial admin user is no longer strictly necessary.
  • A short example for the previously undocumented icingaweb2_roles has been added.

Known Issues

  • With the changes in icinga2_object arises a problem. The prior directory structure within icinga2_fragments_path (default: /var/tmp/icinga/) does not fit the new approach for writing configuration files. Some paths that would become directories before are now treated as files. If the old directory structure is present on a remote host, deployment with the new method will most likely fail due to this.

    If the execution of icinga2_object fails, deleting icinga2_fragments_path should fix the problem. This, however, is a manual step that needs to be done.

0.4.3

22 Sep 12:48

Choose a tag to compare

v0.4.3

Release Summary

Small bugfix release mostly regarding databases and Icinga Web 2.

Bugfixes

  • Add internal modules to installable modules list.
    This allows for modules directly shipped with Icinga Web 2 to be configurable.
    This mostly affects the monitoring module since it has actual configuration options.
    Others like setup can now be enabled/disabled.

  • Fix issue where the package for any given Icinga Web 2 module was not installed if that module had set enabled: false.
    Modules are now installed and configured properly even when they are set to be disabled in the end.

  • Fixed an issue where the config.ini file of the monitoring module was not deployed.

  • More complex database passwords have been an issue when importing database schemas.
    The passwords are now properly quoted using the quote filter. This means that passwords containing characters such as # and \ should now work correctly.

    The change affects Icinga 2 (IDO), Icinga for Kubernetes, Icinga DB and Icinga Web 2.

  • Switch from run_once: true to throttle: 1 when applying database schema.
    The initial intention was to apply the schema once per cluster. However, if nodes are independent, e.g. multiple clusters, this would still only run on the first host, leaving the other node(s) with empty databases.

    The tasks are rewritten to now check whether the schema needs to be applied before trying to do so. This happens one host at a time. Thus, the tasks take slightly more time but work when using multiple clusters.

0.4.2

24 Jul 15:36

Choose a tag to compare

v0.4.2

Release Summary

Small quality of life & bugfix release.

Minor Changes

  • Extend condition for the API feature when using self generated certificates. This avoids running the given portion of the code unnecessarily. Thanks @thesefer
  • For Icinga2 certificates and key file permissions are now set explicitly when using self generated certificates (0644 and 0600 respectively).
  • The Icinga2 API feature now allows for the use of certificates already present on the remote host. This means that certificates (and the key) no longer have to be present on the Ansible controller which allows for more flexibility when it comes to certificate deployment. The new behavior can be activated by setting ssl_remote_source: true within the API feature.

Bugfixes

  • The TLS configuration for Icinga DB / Icinga DB Redis has been faulty. Both configuration templates now render properly based on the given TLS related variables. If using TLS in Icinga DB Redis, the non-TLS port will be disabled. The Icinga DB (daemon) configuration now uses the correct YAML key for both the TLS port and the non-TLS port.

Thanks to
@thesefer
@Saeid-Abadi
@mkayontour
@Donien

0.4.1

23 Jun 12:47

Choose a tag to compare

v0.4.1

Release Summary

This release introduces Icinga for Kubernetes (thanks to @gianmarco-mameli), removes deprecation warnings present in the prior
release, adds a new filter and support for the Graphite module.

Major Changes

Minor Changes

  • Add netways.icinga.icinga2_ticket filter. This filter converts a given string (NodeName) into an Icinga2 ticket using a TicketSalt.
  • Add Icinga Web 2 module Graphite.
  • Add variable icingadb_redis_client_certificate to define whether TLS client certificates are accepted/required/rejected when connecting to the Redis server. Only has an effect when using TLS encryption.

Thanks to
@gianmarco-mameli
@Saeid-Abadi
@mkayontour
@Donien

0.4.0 - NETWAYS

26 May 12:43

Choose a tag to compare

v0.4.0 - NETWAYS

Disclaimer

This release is the same as the previous one (0.4.0). Only the namespace has been changed.
This way a proper release of 0.4.0 with the new namespace 'netways' is available.

Release Summary

Add some features like Icinga2 feature CompatLogger and support for
Suse in monitoring_plugins role. Apart from some features and
enhancements this is mostly a bugfix release.

Major Changes

  • Add an Ansible Inventory Plugin to fetch host information from
    Icinga 2's API for use as an Ansible Inventory
  • Added Installation of x509 certificate monitoring model

Minor Changes

  • Add object CompatLogger and feature compatlog.
  • Add support for Suse in the monitoring_plugins role.
  • Add the ability to create additional Icinga Web 2 users - Thanks @losten-git
  • Add variable icinga_monitoring_plugins_dependency_repos to allow for later modification by the user if specific other repositories need to be activated instead of powertools / crb
  • Added support for PostgresQL databases for Icingaweb2 modules that support it
  • Added tests for retention configs
  • Allow for usage of loop variables from apply_for within object - Thanks @lucagubler (#344)
  • Change documentation to better reflect the intended usage of the variable icinga2_objects as a host variable vs. as a play variable.
  • Enhance IcingaDB retention configs #200
  • Icingaweb2: fix duplicate task name at kickstart tasks (#244)
  • added pyinilint as ini validator after templates
  • added tests for icingaweb2 ini template
  • changed all references of vars['icingaweb2_modules'] to icingaweb2_modules (#266)
  • ensure backwards compatibility with bool filter (#218)
  • removed localhost condition as default as it could be a localhost connection. (#257)

Bugfixes

  • Added block rescue statement if unsupported os found. (#232)
  • Adjusted the way variables get looked up from vars['varname'] to varname in most places.
  • Certain values within Icinga Web ini files got quoted incorrectly using single quotes. They are now quoted properly using double quotes (#301).
  • Changed variable lookups in the form of vars['variablename'] to variablename to avoid explicitly looking up the vars key of a play.
  • Fix bug where the port for Icinga Web's own database connection was not set in resources.ini.
  • Fix bug with current beta release of Ansible Core where XY is dict does not work for dictionary-like variables. Use isinstance(XY, dict) now instead. This bug is related to the prefix filter plugin but might arise again with other parts of the code in the future.
  • Fix exposure of secret TicketSalt inside the API feature. Use constant TicketSalt as the value for ticket_salt instead which is an empty string if unchanged by the user.
  • Fix quoting for ! in templating Issue #208
  • Fix templating issue where explicitly quoting integer values for use as strings is necessary in certain versions of e.g. Jinja2 - thanks @sol1-matt
  • Fixed a bug in monitoring_plugins where a requested plugin that is unavailable would cause a failure even though it is a known plugin and should be skipped (#327).
  • Fixed collect of icinga2_objects when icinga2_config_host is not defined (#228)
  • Fixed incorrect failure of x509 variable sanity checks. They now fail as intended instead of due to syntax (#303).
  • Fixed wrong variable being referenced to apply x509 mysql database schema. Use schema_path_mysql now (#303).
  • Icinga's packages no longer create /var/log/icingadb-redis/. Added tasks that create a log directory based on icingadb_redis_logfile (#298).
  • Icinga2: Correctly rename cleanup argument from icinga2_ca_host_port to ca_host_port
  • Icingaweb2: Change order of module state and configuration tasks #225
  • Reintroduce file deleted in previous PR #354 to restore functionality in x509 module - thanks to @lutin-malin #366
  • Replaced quote filter from ini template
  • The Icinga DB config template used two different variables to configure (in)secure TLS communication with the database. It now uses icingadb_database_tls_insecure for both the condition and as the actual value (#302).
  • The type of vars['icinga2_objects'] was wrongly tested for. This should be a list. The type is now properly checked for (#308).
  • When using icinga2_custom_config sub directories within the found files/ directory can now be used to deploy Icinga 2 configuration. This allows users to freely structure their files/ directory (nested directories) (#309).
  • fixed libboost_regex1_54_0 missing for Suse 12. thanks @dh-roland
  • icingaweb2: run pqslcmd with LANG=C to ensure the output is in english.
  • remove superfluous curly brace (#246)

New Modules

  • netways.icinga.icinga2_compatlogger - Creates information for CompatLogger object.

Thanks to

@losten-git
@lucagubler
@lutin-malin
@C0rn3j
@sol1-matt
@svenkalinowski
@dh-roland
@mkayontour
@Donien

And more :)

0.4.0

15 May 14:28

Choose a tag to compare

v0.4.0

Release Summary

Add some features like Icinga2 feature CompatLogger and support for
Suse in monitoring_plugins role. Apart from some features and
enhancements this is mostly a bugfix release.

Major Changes

  • Add an Ansible Inventory Plugin to fetch host information from
    Icinga 2's API for use as an Ansible Inventory
  • Added Installation of x509 certificate monitoring model

Minor Changes

  • Add object CompatLogger and feature compatlog.
  • Add support for Suse in the monitoring_plugins role.
  • Add the ability to create additional Icinga Web 2 users - Thanks @losten-git
  • Add variable icinga_monitoring_plugins_dependency_repos to allow for later modification by the user if specific other repositories need to be activated instead of powertools / crb
  • Added support for PostgresQL databases for Icingaweb2 modules that support it
  • Added tests for retention configs
  • Allow for usage of loop variables from apply_for within object - Thanks @lucagubler (#344)
  • Change documentation to better reflect the intended usage of the variable icinga2_objects as a host variable vs. as a play variable.
  • Enhance IcingaDB retention configs #200
  • Icingaweb2: fix duplicate task name at kickstart tasks (#244)
  • added pyinilint as ini validator after templates
  • added tests for icingaweb2 ini template
  • changed all references of vars['icingaweb2_modules'] to icingaweb2_modules (#266)
  • ensure backwards compatibility with bool filter (#218)
  • removed localhost condition as default as it could be a localhost connection. (#257)

Bugfixes

  • Added block rescue statement if unsupported os found. (#232)
  • Adjusted the way variables get looked up from vars['varname'] to varname in most places.
  • Certain values within Icinga Web ini files got quoted incorrectly using single quotes. They are now quoted properly using double quotes (#301).
  • Changed variable lookups in the form of vars['variablename'] to variablename to avoid explicitly looking up the vars key of a play.
  • Fix bug where the port for Icinga Web's own database connection was not set in resources.ini.
  • Fix bug with current beta release of Ansible Core where XY is dict does not work for dictionary-like variables. Use isinstance(XY, dict) now instead. This bug is related to the prefix filter plugin but might arise again with other parts of the code in the future.
  • Fix exposure of secret TicketSalt inside the API feature. Use constant TicketSalt as the value for ticket_salt instead which is an empty string if unchanged by the user.
  • Fix quoting for ! in templating Issue #208
  • Fix templating issue where explicitly quoting integer values for use as strings is necessary in certain versions of e.g. Jinja2 - thanks @sol1-matt
  • Fixed a bug in monitoring_plugins where a requested plugin that is unavailable would cause a failure even though it is a known plugin and should be skipped (#327).
  • Fixed collect of icinga2_objects when icinga2_config_host is not defined (#228)
  • Fixed incorrect failure of x509 variable sanity checks. They now fail as intended instead of due to syntax (#303).
  • Fixed wrong variable being referenced to apply x509 mysql database schema. Use schema_path_mysql now (#303).
  • Icinga's packages no longer create /var/log/icingadb-redis/. Added tasks that create a log directory based on icingadb_redis_logfile (#298).
  • Icinga2: Correctly rename cleanup argument from icinga2_ca_host_port to ca_host_port
  • Icingaweb2: Change order of module state and configuration tasks #225
  • Reintroduce file deleted in previous PR #354 to restore functionality in x509 module - thanks to @lutin-malin #366
  • Replaced quote filter from ini template
  • The Icinga DB config template used two different variables to configure (in)secure TLS communication with the database. It now uses icingadb_database_tls_insecure for both the condition and as the actual value (#302).
  • The type of vars['icinga2_objects'] was wrongly tested for. This should be a list. The type is now properly checked for (#308).
  • When using icinga2_custom_config sub directories within the found files/ directory can now be used to deploy Icinga 2 configuration. This allows users to freely structure their files/ directory (nested directories) (#309).
  • fixed libboost_regex1_54_0 missing for Suse 12. thanks @dh-roland
  • icingaweb2: run pqslcmd with LANG=C to ensure the output is in english.
  • remove superfluous curly brace (#246)

New Modules

  • icinga.icinga.icinga2_compatlogger - Creates information for CompatLogger object.

Thanks to

@losten-git
@lucagubler
@lutin-malin
@C0rn3j
@sol1-matt
@svenkalinowski
@dh-roland
@mkayontour
@Donien

And more :)

0.3.4

23 Jul 12:09

Choose a tag to compare

v0.3.4

Release Summary

Bugfix release

Bugfixes

  • Added missing port paramater to mysql command within icingadb role (#267)
  • Fixed collect of icinga2_objects when icinga2_config_host is not defined (#228) Thanks @gianmarco-mameli
  • Fixed issue where reusing the repos role within the monitoring_plugins could cause the deactivation of the repos; using standalone task now (#270)
  • Icinga's packages no longer create '/var/log/icingadb-redis/'. Added tasks that create a log directory based on icingadb_redis_logfile (#298).

Thanks for the release preparation @Donien!

0.3.3

15 Jan 16:31

Choose a tag to compare

This is a bugfix release to fix a few minor problems which broke a few features.

Bugfixes

  • ensure backwards compatibility with bool filter (#218)
  • 'icinga2 feature api: fixed missing quotes in delegate ticket command for satellites or second master nodes. (#250)'
  • 'icingaweb2: run pqslcmd with LANG=C to ensure the output is in english. (#241)'
  • remove superfluous curly brace (#246)

0.3.2

07 Dec 15:11
0.3.2
bd3dc25

Choose a tag to compare

This is a bugfix release, bringing two QOL features, some improvements to the docs, and a fix for the installation process of some of the roles which broke with v0.3.1.

What's Changed

  • Added possibility to delegate ticket creation to satellites by @mocdaniel (#211)
  • Adjusted the installation of the director module when using the source installation by @mocdaniel (#220)

Bugfixes

Full Changelog: https://github.com/Icinga/ansible-collection-icinga/blob/main/CHANGELOG.rst

0.3.1

21 Nov 12:37

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: https://github.com/Icinga/ansible-collection-icinga/blob/main/CHANGELOG.rst