Releases: NETWAYS/ansible-collection-icinga
0.4.4
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_objecthas 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
orderparameter 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
icinga2role 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 theuniquefilter right before writing to save some time during execution. - The deb repositories made available by the
reposrole 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 oldicinga.listfile 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_roleswas not deployed at all ificingaweb2_admin_usernameandicingaweb2_admin_passwordwere missing. Now for both, the predefined admin role and user-definedicingaweb2_roles, the respective variables are tested for correctly when creatingroles.ini. Thus, the creation of an initial admin user is no longer strictly necessary.- A short example for the previously undocumented
icingaweb2_roleshas been added.
Known Issues
-
With the changes in
icinga2_objectarises a problem. The prior directory structure withinicinga2_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_objectfails, deletingicinga2_fragments_pathshould fix the problem. This, however, is a manual step that needs to be done.
0.4.3
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 themonitoringmodule since it has actual configuration options.
Others likesetupcan 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.inifile of themonitoringmodule was not deployed. -
More complex database passwords have been an issue when importing database schemas.
The passwords are now properly quoted using thequotefilter. 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: truetothrottle: 1when 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
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: truewithin 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
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
- Add a role for the installation and configuration of Icinga for Kubernetes.
- Add tasks to role
icingaweb2to install and configure Icinga for Kubernetes Web.
Minor Changes
- Add
netways.icinga.icinga2_ticketfilter. 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_certificateto 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
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
CompatLoggerand featurecompatlog. - Add support for Suse in the
monitoring_pluginsrole. - Add the ability to create additional Icinga Web 2 users - Thanks @losten-git
- Add variable
icinga_monitoring_plugins_dependency_reposto allow for later modification by the user if specific other repositories need to be activated instead ofpowertools/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_forwithin object - Thanks @lucagubler (#344) - Change documentation to better reflect the intended usage of the variable
icinga2_objectsas 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']toicingaweb2_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']tovarnamein most places. - Certain values within Icinga Web
inifiles got quoted incorrectly using single quotes. They are now quoted properly using double quotes (#301). - Changed variable lookups in the form of
vars['variablename']tovariablenameto avoid explicitly looking up thevarskey 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 dictdoes not work for dictionary-like variables. Useisinstance(XY, dict)now instead. This bug is related to theprefixfilter plugin but might arise again with other parts of the code in the future. - Fix exposure of secret
TicketSaltinside the API feature. Use constantTicketSaltas the value forticket_saltinstead 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_pluginswhere 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_objectswhenicinga2_config_hostis 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_mysqlnow (#303). - Icinga's packages no longer create
/var/log/icingadb-redis/. Added tasks that create a log directory based onicingadb_redis_logfile(#298). - Icinga2: Correctly rename cleanup argument from
icinga2_ca_host_porttoca_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_insecurefor 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_configsub directories within the foundfiles/directory can now be used to deploy Icinga 2 configuration. This allows users to freely structure theirfiles/directory (nested directories) (#309). - fixed
libboost_regex1_54_0missing 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
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
CompatLoggerand featurecompatlog. - Add support for Suse in the
monitoring_pluginsrole. - Add the ability to create additional Icinga Web 2 users - Thanks @losten-git
- Add variable
icinga_monitoring_plugins_dependency_reposto allow for later modification by the user if specific other repositories need to be activated instead ofpowertools/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_forwithin object - Thanks @lucagubler (#344) - Change documentation to better reflect the intended usage of the variable
icinga2_objectsas 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']toicingaweb2_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']tovarnamein most places. - Certain values within Icinga Web
inifiles got quoted incorrectly using single quotes. They are now quoted properly using double quotes (#301). - Changed variable lookups in the form of
vars['variablename']tovariablenameto avoid explicitly looking up thevarskey 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 dictdoes not work for dictionary-like variables. Useisinstance(XY, dict)now instead. This bug is related to theprefixfilter plugin but might arise again with other parts of the code in the future. - Fix exposure of secret
TicketSaltinside the API feature. Use constantTicketSaltas the value forticket_saltinstead 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_pluginswhere 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_objectswhenicinga2_config_hostis 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_mysqlnow (#303). - Icinga's packages no longer create
/var/log/icingadb-redis/. Added tasks that create a log directory based onicingadb_redis_logfile(#298). - Icinga2: Correctly rename cleanup argument from
icinga2_ca_host_porttoca_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_insecurefor 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_configsub directories within the foundfiles/directory can now be used to deploy Icinga 2 configuration. This allows users to freely structure theirfiles/directory (nested directories) (#309). - fixed
libboost_regex1_54_0missing 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
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
This is a bugfix release to fix a few minor problems which broke a few features.
Bugfixes
0.3.2
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
- Role repos: Fix bug in variable search - thanks to @gianmarco-mameli #224
Full Changelog: https://github.com/Icinga/ansible-collection-icinga/blob/main/CHANGELOG.rst
0.3.1
What's Changed
- Allow IPv6 address to not exist by @christoph2497 in #192
- Fix naming IcingaDB schema tasks by @christoph2497 in #193
- Fix to use correct URL for Debian Ubuntu by @christoph2497 in #195
- Feature/business process module by @christoph2497 in #196
- icingaweb2: Adjust preferences settings to store preferences in database by @dgoetz in #194
- change icingaweb2_database_import_schema to icingaweb2_db_import_schema by @mrc-rpprcht in #206
- support Raspbian armhf repos by @gianmarco-mameli in #203
- Adds password capabilities to icingadb-redis configuration by @mocdaniel in #202
- Fixed typo in api.yml by @atrestis in #207
- Fix incorrect cycle of installation and removal by @Donien in #210
- Adjusts actions so scenarios don't always run by @mocdaniel in #215
New Contributors
- @christoph2497 made their first contribution in #192
- @dgoetz made their first contribution in #194
- @gianmarco-mameli made their first contribution in #203
- @atrestis made their first contribution in #207
Full Changelog: https://github.com/Icinga/ansible-collection-icinga/blob/main/CHANGELOG.rst