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