servicenow.servicenow.now – ServiceNow Inventory Plugin
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]cache = no
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]fact_caching_connection = None [inventory]cache_connection = None
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]fact_caching = memory [inventory]cache_plugin = memory
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]fact_caching_prefix = ansible_inventory_ [inventory]cache_prefix = ansible_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]fact_caching_timeout = 3600 [inventory]cache_timeout = 3600
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 Mutually exclusive with | |
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 | |
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 | |
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 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 |
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