ansible/contrib/inventory/cloudforms.ini

38 lines
970 B
INI
Raw Normal View History

add cloudforms inventory script (#17037) * add cloudforms inventory script based on the foreman inventory script, features: * cached results (default 600 seconds) * paginated host results (default 100 hosts) * ssl verification (default True) * arguments to flush cache and run in debug mode * suggested rework * removed second cache / dict with duplicate info * added purge_actions configuration option to remove the actions from a host (defaults to False) * added prefer_ip_address configuration option so give the option of using ip address instead of name (defaults to True) * removed self variables — just use the arguments directly * added --pretty command line option to pretty print results * renamed _resolve_params to _resolve_host * implement suggestions * removed not used import * added warnings to help debug connection issues * renamed self.cache to self.hosts for clarity * now will use the first ip address as ansible_ssh_host * flipped default for prefer_ip_address config option to false - preserve name, and specify ansible_ssh_host as ip address * added checks and warnings to configuration options, sane defaults for all except required: ** `url` - the first part of the cloudforms server url (https://cfme.example.com) ** `username` - the cloudforms username to log in with ** `password` - the password for the cloudforms user specified * removed redundant call to fetch host information (since we’re paging results, no need to split the calls) * added warning for unexpected responses from CloudForms * debug for returned sting now prints the string instead of forcing to JSON * removed no longer needed methods to fetch host information * using ‘key in list’ instead of ‘list.has_key(key)’ * correctly formatted groups and allowed nested groups * now create groups for `location`, `type` and `vendor`, with appropriate sub-groups and children * made to_safe honor config option to clean group names for ansible consumption * remove prefer_ip_address configuration option no longer needed since we will specify `ansible_ssh_host` as the returned ip address. * removed dns_name no longer needed, will preserve `host[name]` as name in Ansible. * purge actions from hostvars changed purge_actions to True * flake8 suggestion for whitespace * fix undefined r variable in warning output use the correct ret variable * Default purge_actions to True We probably don’t need them, but it is configurable, so just default to remove them. * Add configuration option to nest cloudforms tags disabled by default, the nest_tags option will expand cloudforms tags into a nested group/subgroup structure. Otherwise, it will use the whole tag name. * added purging the actions removed in previous clean up in error. * fixed undefined variable specified the correct variable for logging.
2016-08-18 23:37:31 +02:00
[cloudforms]
# the version of CloudForms ; currently not used, but tested with
version = 4.1
# This should be the hostname of the CloudForms server
url = https://cfme.example.com
# This will more than likely need to be a local CloudForms username
username = <set your username here>
# The password for said username
password = <set your password here>
# True = verify SSL certificate / False = trust anything
ssl_verify = True
# limit the number of vms returned per request
limit = 100
# purge the CloudForms actions from hosts
purge_actions = True
# Clean up group names (from tags and other groupings so Ansible doesn't complain)
clean_group_keys = True
# Explode tags into nested groups / subgroups
nest_tags = False
# If set, ensure host name are suffixed with this value
# Note: This suffix *must* include the leading '.' as it is appended to the hostname as is
# suffix = .example.org
add cloudforms inventory script (#17037) * add cloudforms inventory script based on the foreman inventory script, features: * cached results (default 600 seconds) * paginated host results (default 100 hosts) * ssl verification (default True) * arguments to flush cache and run in debug mode * suggested rework * removed second cache / dict with duplicate info * added purge_actions configuration option to remove the actions from a host (defaults to False) * added prefer_ip_address configuration option so give the option of using ip address instead of name (defaults to True) * removed self variables — just use the arguments directly * added --pretty command line option to pretty print results * renamed _resolve_params to _resolve_host * implement suggestions * removed not used import * added warnings to help debug connection issues * renamed self.cache to self.hosts for clarity * now will use the first ip address as ansible_ssh_host * flipped default for prefer_ip_address config option to false - preserve name, and specify ansible_ssh_host as ip address * added checks and warnings to configuration options, sane defaults for all except required: ** `url` - the first part of the cloudforms server url (https://cfme.example.com) ** `username` - the cloudforms username to log in with ** `password` - the password for the cloudforms user specified * removed redundant call to fetch host information (since we’re paging results, no need to split the calls) * added warning for unexpected responses from CloudForms * debug for returned sting now prints the string instead of forcing to JSON * removed no longer needed methods to fetch host information * using ‘key in list’ instead of ‘list.has_key(key)’ * correctly formatted groups and allowed nested groups * now create groups for `location`, `type` and `vendor`, with appropriate sub-groups and children * made to_safe honor config option to clean group names for ansible consumption * remove prefer_ip_address configuration option no longer needed since we will specify `ansible_ssh_host` as the returned ip address. * removed dns_name no longer needed, will preserve `host[name]` as name in Ansible. * purge actions from hostvars changed purge_actions to True * flake8 suggestion for whitespace * fix undefined r variable in warning output use the correct ret variable * Default purge_actions to True We probably don’t need them, but it is configurable, so just default to remove them. * Add configuration option to nest cloudforms tags disabled by default, the nest_tags option will expand cloudforms tags into a nested group/subgroup structure. Otherwise, it will use the whole tag name. * added purging the actions removed in previous clean up in error. * fixed undefined variable specified the correct variable for logging.
2016-08-18 23:37:31 +02:00
[cache]
# Maximum time to trust the cache in seconds
max_age = 600