On this page
theforeman.foreman.foreman – Foreman inventory source
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
.
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 | 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.
|
|
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_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.
|
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]
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/theforeman/foreman/foreman_inventory.html