Note
This plugin is part of the theforeman.foreman collection (version 1.5.1).
To install it use: ansible-galaxy collection install theforeman.foreman
.
To use it in a playbook, specify: theforeman.foreman.foreman
.
foreman.(yml|yaml)
.The below requirements are needed on the local controller node that executes this inventory.
Parameter | Choices/Defaults | Configuration | Comments |
---|---|---|---|
batch_size integer | Default: 250 | Number of hosts per batch that will be retrieved from the Foreman API per individual call | |
cache boolean |
| ini entries: [inventory] env:ANSIBLE_INVENTORY_CACHE | Toggle to enable/disable the caching of the inventory's source data, requires a cache plugin setup to work. |
cache_connection string | ini entries: [defaults] [inventory] env:ANSIBLE_CACHE_PLUGIN_CONNECTION env:ANSIBLE_INVENTORY_CACHE_CONNECTION | Cache connection data or path, read cache plugin documentation for specifics. | |
cache_plugin string | Default: "memory" | ini entries: [defaults] [inventory] env:ANSIBLE_CACHE_PLUGIN env:ANSIBLE_INVENTORY_CACHE_PLUGIN | Cache plugin to use for the inventory's source data. |
cache_prefix string | Default: "ansible_inventory_" | ini entries: [default] [inventory] env:ANSIBLE_CACHE_PLUGIN_PREFIX env:ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX | Prefix to use for cache plugin files/tables |
cache_timeout integer | Default: 3600 | ini entries: [defaults] [inventory] env:ANSIBLE_CACHE_PLUGIN_TIMEOUT env:ANSIBLE_INVENTORY_CACHE_TIMEOUT | Cache duration in seconds |
compose dictionary | Default: {} | Create vars from jinja2 expressions. | |
foreman string | Foreman server related configuration, deprecated. You can pass use_reports_api in this dict to enable the Reporting API. Only for backward compatibility. | ||
group_prefix string | Default: "foreman_" | prefix to apply to foreman groups | |
groups dictionary | Default: {} | Add hosts to group based on Jinja2 conditionals. | |
host_filters string | This can be used to restrict the list of returned host | ||
hostnames list / elements=string | Default: ["name"] | A list of templates in order of precedence to compose inventory_hostname. If the template results in an empty string or None value it is ignored. | |
keyed_groups list / elements=string | Default: [] | Add hosts to group based on the values of a variable. | |
leading_separator boolean added in 2.11 of ansible.builtin |
| Use in conjunction with keyed_groups. 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 "" and the default separator is "_". Set this option to False to omit the leading underscore (or other separator) if no prefix is given. 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. | |
legacy_hostvars boolean |
| Toggle, if true the plugin will build legacy hostvars present in the foreman script Places hostvars in a dictionary with keys `foreman`, `foreman_facts`, and `foreman_params` | |
max_timeout integer | Default: 600 | Timeout before falling back to old host API when using report_data endpoint while polling. | |
password string / required | env:FOREMAN_PASSWORD | Password of the user accessing the Foreman server. | |
plugin string / required |
| token that ensures this is a source file for the foreman plugin. | |
poll_interval integer | Default: 10 | The polling interval between 2 calls to the report_data endpoint while polling. | |
report dictionary | Report API specific configuration, deprecated. You can pass the Report API specific params as part of this dict, instead of the main configuration. Only for backward compatibility. | ||
strict boolean |
| If yes make invalid entries a fatal error, otherwise skip and continue.Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default. | |
url string | Default: "http://localhost:3000" | env:FOREMAN_SERVER env:FOREMAN_SERVER_URL env:FOREMAN_URL | URL of the Foreman server. |
use_extra_vars boolean added in 2.11 of ansible.builtin |
| ini entries: [inventory_plugins] env:ANSIBLE_INVENTORY_USE_EXTRA_VARS | Merge extra vars into the available variables for composition (highest precedence). |
use_reports_api boolean |
| Use Reporting API. | |
user string / required | env:FOREMAN_USER env:FOREMAN_USERNAME | Username accessing the Foreman server. | |
validate_certs boolean |
| env:FOREMAN_VALIDATE_CERTS | Whether or not to verify the TLS certificates of the Foreman server. |
vars_prefix string | Default: "foreman_" | prefix to apply to host variables, does not include facts nor params | |
want_content_facet_attributes boolean |
| Toggle, if true the inventory will fetch content view details that the host is tied to. | |
want_facts boolean |
| Toggle, if True the plugin will retrieve host facts from the server | |
want_host_group boolean |
| Toggle, if true the inventory will fetch host_groups and create groupings for the same. | |
want_hostcollections boolean |
| Toggle, if true the plugin will create Ansible groups for host collections | |
want_ipv4 boolean |
| Toggle, if true the inventory will fetch ipv4 address of the host. | |
want_ipv6 boolean |
| Toggle, if true the inventory will fetch ipv6 address of the host. | |
want_location boolean |
| Toggle, if true the inventory will fetch location the host belongs to and create groupings for the same. | |
want_organization boolean |
| Toggle, if true the inventory will fetch organization the host belongs to and create groupings for the same. | |
want_params boolean |
| Toggle, if true the inventory will retrieve 'all_parameters' information as host vars | |
want_smart_proxies boolean |
| Toggle, if true the inventory will fetch smart proxy that the host is registered to. | |
want_subnet boolean |
| Toggle, if true the inventory will fetch subnet. | |
want_subnet_v6 boolean |
| Toggle, if true the inventory will fetch ipv6 subnet. |
# my.foreman.yml plugin: theforeman.foreman.foreman url: https://foreman.example.com user: ansibleinventory password: changeme host_filters: 'organization="Web Engineering"' # shortname.foreman.yml plugin: theforeman.foreman.foreman url: https://foreman.example.com user: ansibleinventory password: changeme hostnames: - name.split('.')[0]
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/theforeman/foreman/foreman_inventory.html