2a2d866c0d
* 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.
33 lines
798 B
INI
33 lines
798 B
INI
[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
|
|
|
|
[cache]
|
|
|
|
# Maximum time to trust the cache in seconds
|
|
max_age = 600
|