theforeman.foreman.foreman inventory – Foreman inventory source
Note
This inventory plugin is part of the theforeman.foreman collection (version 3.5.0).
To install it, use: ansible-galaxy collection install theforeman.foreman
.
You need further requirements to be able to use this inventory plugin,
see Requirements for details.
To use it in a playbook, specify: theforeman.foreman.foreman
.
Synopsis
Get inventory hosts from Foreman.
Uses a YAML configuration file that ends with ``foreman.(yml|yaml)``.
Requirements
The below requirements are needed on the local controller node that executes this inventory.
requests >= 1.1
Parameters
Parameter |
Comments |
---|---|
Number of hosts per batch that will be retrieved from the Foreman API per individual call Default: 250 |
|
Toggle to enable/disable the caching of the inventory’s source data, requires a cache plugin setup to work. Choices:
Configuration:
|
|
Cache connection data or path, read cache plugin documentation for specifics. Configuration:
|
|
Cache plugin to use for the inventory’s source data. Default: “memory” Configuration:
|
|
Prefix to use for cache plugin files/tables Default: “ansible_inventory_” Configuration:
|
|
Cache duration in seconds Default: 3600 Configuration:
|
|
Create vars from jinja2 expressions. Default: {} |
|
Foreman server related configuration, deprecated. You can pass use_reports_api in this dict to enable the Reporting API. Only for backward compatibility. |
|
prefix to apply to foreman groups Default: “foreman_” |
|
Add hosts to group based on Jinja2 conditionals. Default: {} |
|
This can be used to restrict the list of returned host |
|
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. Default: [“name”] |
|
Add hosts to group based on the values of a variable. Default: [] |
|
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` Choices:
|
|
Timeout before falling back to old host API when using report_data endpoint while polling. Default: 600 |
|
Password of the user accessing the Foreman server. Configuration:
|
|
token that ensures this is a source file for the Choices:
|
|
The polling interval between 2 calls to the report_data endpoint while polling. Default: 10 |
|
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. |
|
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:
|
|
URL of the Foreman server. Default: “http://localhost:3000” Configuration:
|
|
Use Reporting API. Choices:
|
|
Username accessing the Foreman server. Configuration:
|
|
Whether or not to verify the TLS certificates of the Foreman server. Choices:
Configuration:
|
|
prefix to apply to host variables, does not include facts nor params Default: “foreman_” |
|
Toggle, if true the inventory will fetch content view details that the host is tied to. Choices:
|
|
Toggle, if True the plugin will retrieve host facts from the server Choices:
|
|
Toggle, if true the inventory will fetch host_groups and create groupings for the same. Choices:
|
|
Toggle, if true the plugin will create Ansible groups for host collections Choices:
|
|
Toggle, if true the inventory will fetch ipv4 address of the host. Choices:
|
|
Toggle, if true the inventory will fetch ipv6 address of the host. Choices:
|
|
Toggle, if true the inventory will fetch location the host belongs to and create groupings for the same. Choices:
|
|
Toggle, if true the inventory will fetch organization the host belongs to and create groupings for the same. Choices:
|
|
Toggle, if true the inventory will retrieve ‘all_parameters’ information as host vars Choices:
|
|
Toggle, if true the inventory will fetch smart proxy that the host is registered to. Choices:
|
|
Toggle, if true the inventory will fetch subnet. Choices:
|
|
Toggle, if true the inventory will fetch ipv6 subnet. Choices:
|
Examples
# 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]
Hint
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.