servicenow.servicenow.now – ServiceNow Inventory Plugin
Note
This plugin is part of the servicenow.servicenow collection (version 1.0.3).
To install it use: ansible-galaxy collection install servicenow.servicenow
.
To use it in a playbook, specify: servicenow.servicenow.now
.
New in version 2.10: of servicenow.servicenow
Synopsis
- ServiceNow Inventory plugin.
Requirements
The below requirements are needed on the local controller node that executes this inventory.
- requests
Parameters
Parameter | Choices/Defaults | Configuration | Comments |
---|---|---|---|
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. | |
enhanced boolean |
| Enable enhanced inventory which provides relationship information from CMDB. Requires installation of Update Set located in update_sets directory. | |
enhanced_groups boolean |
| enable enhanced groups from CMDB relationships. Only used if enhanced is enabled. | |
fields list / elements=string | Default: "ip_address,fqdn,host_name,sys_class_name,name" | Comma seperated string providing additional table columns to add as host vars to each inventory host. | |
filter_results string | Default: "" | Filter results with sysparm_query encoded query string syntax. Complete list of operators available for filters and queries. | |
groups dictionary | Default: {} | Add hosts to group based on Jinja2 conditionals. | |
host string | env:SN_HOST | The ServiceNow hostname. This value is FQDN for ServiceNow host. If the value is not specified in the task, the value of environment variable SN_HOST will be used instead.Mutually exclusive with instance . | |
instance string | env:SN_INSTANCE | The ServiceNow instance name, without the domain, service-now.com. If the value is not specified in the task, the value of environment variable SN_INSTANCE will be used instead. | |
keyed_groups list / elements=string | Default: [] | Add hosts to group based on the values of a variable. | |
password string / required | env:SN_PASSWORD | Password for username. If the value is not specified, the value of environment variable SN_PASSWORD will be used instead. | |
plugin string / required |
| The name of the ServiceNow Inventory Plugin, this should always be 'servicenow.servicenow.now'. | |
proxy string | Default: "" | Proxy server to use for requests to ServiceNow. | |
selection_order list / elements=string | Default: "ip_address,fqdn,host_name,name" | Comma seperated string providing ability to define selection preference order. | |
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. | |
table string | Default: "cmdb_ci_server" | The ServiceNow table to query. | |
username string | env:SN_USERNAME | Name of user for connection to ServiceNow. If the value is not specified, the value of environment variable SN_USERNAME will be used instead. |
Examples
# Simple Inventory Plugin example plugin: servicenow.servicenow.now instance: dev89007 username: admin password: password keyed_groups: - key: sn_sys_class_name | lower prefix: '' separator: '' # Using Keyed Groups plugin: servicenow.servicenow.now host: servicenow.mydomain.com username: admin password: password fields: [name,host_name,fqdn,ip_address,sys_class_name, install_status, classification,vendor] keyed_groups: - key: sn_classification | lower prefix: 'env' - key: sn_vendor | lower prefix: '' separator: '' - key: sn_sys_class_name | lower prefix: '' separator: '' - key: sn_install_status | lower prefix: 'status' # Compose hostvars plugin: servicenow.servicenow.now instance: dev89007 username: admin password: password fields: - name - sys_tags compose: sn_tags: sn_sys_tags.replace(" ", "").split(',') ansible_host: sn_ip_address keyed_groups: - key: sn_tags | lower prefix: 'tag'
Authors
- Will Tome (@willtome)
- Alex Mittell (@alex_mittell)
© 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/servicenow/servicenow/now_inventory.html