community.general.icinga2 inventory – Icinga2 inventory source
Note
This inventory plugin is part of the community.general collection (version 9.4.0).
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.icinga2
.
New in community.general 3.7.0
Synopsis
Get inventory hosts from the Icinga2 API.
Uses a configuration file as an inventory source, it must end in
.icinga2.yml
or.icinga2.yaml
.
Parameters
Parameter |
Comments |
---|---|
Create vars from jinja2 expressions. Default: |
|
Uses Icinga2 hostgroups as groups. Choices:
|
|
Add hosts to group based on Jinja2 conditionals. Default: |
|
An Icinga2 API valid host filter. Leave blank for no filtering |
|
Allows the override of the inventory name based on different attributes. This allows for changing the way limits are used. The current default, Choices:
|
|
Add hosts to group based on the values of a variable. Default: |
|
The default value when the host variable’s value is an empty string. This option is mutually exclusive with |
|
The key from input dictionary used to generate groups. |
|
parent group for keyed group. |
|
A keyed group name will start with this prefix. Default: |
|
separator used to build the keyed group name. Default: |
|
Set this option to This option is mutually exclusive with Choices:
|
|
Use in conjunction with By default, a keyed group that does not have a prefix or a separator provided will have a name that starts with an underscore. This is because the default prefix is Set this option to If the group name is derived from a mapping the separator is still used to concatenate the items. To not use a separator in the group name at all, set the separator for the keyed group to an empty string instead. Choices:
|
|
Password to query the API. |
|
Name of the plugin. Choices:
|
|
If Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default. Choices:
|
|
Root URL of Icinga2 API. |
|
Merge extra vars into the available variables for composition (highest precedence). Choices:
Configuration:
|
|
Username to query the API. |
|
Enables or disables SSL certificate verification. Choices:
|
Examples
# my.icinga2.yml
plugin: community.general.icinga2
url: http://localhost:5665
user: ansible
password: secure
host_filter: \"linux-servers\" in host.groups
validate_certs: false # only do this when connecting to localhost!
inventory_attr: name
groups:
# simple name matching
webservers: inventory_hostname.startswith('web')
# using icinga2 template
databaseservers: "'db-template' in (icinga2_attributes.templates|list)"
compose:
# set all icinga2 attributes to a host variable 'icinga2_attrs'
icinga2_attrs: icinga2_attributes
# set 'ansible_user' and 'ansible_port' from icinga2 host vars
ansible_user: icinga2_attributes.vars.ansible_user
ansible_port: icinga2_attributes.vars.ansible_port | default(22)