Note
This plugin is part of the netbox.netbox collection.
To install it use: ansible-galaxy collection install netbox.netbox
.
To use it in a playbook, specify: netbox.netbox.nb_inventory
.
Parameter | Choices/Defaults | Configuration | Comments |
---|---|---|---|
api_endpoint string / required | env:NETBOX_API | Endpoint of the NetBox API | |
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: {} | List of custom ansible host vars to create from the device object fetched from NetBox | |
config_context boolean |
| If True, it adds config_context in host vars. Config-context enables the association of arbitrary data to devices and virtual machines grouped by region, site, role, platform, and/or tenant. Please check official netbox docs for more info. | |
device_query_filters list / elements=string | Default: [] | List of parameters passed to the query string for devices (Multiple values may be separated by commas) | |
fetch_all boolean added in 0.2.1 of netbox.netbox |
| By default, fetching interfaces and services will get all of the contents of NetBox regardless of query_filters applied to devices and VMs. When set to False, separate requests will be made fetching interfaces, services, and IP addresses for each device_id and virtual_machine_id. If you are using the various query_filters options to reduce the number of devices, you may find querying Netbox faster with fetch_all set to False. For efficiency, when False, these requests will be batched, for example /api/dcim/interfaces?limit=0&device_id=1&device_id=2&device_id=3 These GET request URIs can become quite large for a large number of devices. If you run into HTTP 414 errors, you can adjust the max_uri_length option to suit your web server. | |
flatten_config_context boolean added in 0.2.1 of netbox.netbox |
| If config_context is enabled, by default it's added as a host var named config_context. If flatten_config_context is set to True, the config context variables will be added directly to the host instead. | |
flatten_custom_fields boolean added in 0.2.1 of netbox.netbox |
| By default, host custom fields are added as a dictionary host var named custom_fields. If flatten_custom_fields is set to True, the fields will be added directly to the host instead. | |
flatten_local_context_data boolean added in 0.3.0 of netbox.netbox |
| If local_context_data is enabled, by default it's added as a host var named local_context_data. If flatten_local_context_data is set to True, the config context variables will be added directly to the host instead. | |
follow_redirects string |
| Determine how redirects are followed. By default, follow_redirects is set to uses urllib2 default behavior. | |
group_by list / elements=string |
[] | Keys used to create groups. The plurals option controls which of these are valid. | |
group_names_raw boolean added in 0.2.0 of netbox.netbox |
| Will not add the group_by choice name to the group names | |
groups dictionary | Default: {} | Add hosts to group based on Jinja2 conditionals. | |
interfaces boolean added in 0.1.7 of netbox.netbox |
| If True, it adds the device or virtual machine interface information in host vars. | |
keyed_groups list / elements=string | Default: [] | Add hosts to group based on the values of a variable. | |
max_uri_length integer added in 0.2.1 of netbox.netbox | Default: 4000 | When fetch_all is False, GET requests to NetBox may become quite long and return a HTTP 414 (URI Too Long). You can adjust this option to be smaller to avoid 414 errors, or larger for a reduced number of requests. | |
plugin string / required |
| token that ensures this is a source file for the 'netbox' plugin. | |
plurals boolean added in 0.2.1 of netbox.netbox |
| If True, all host vars are contained inside single-element arrays for legacy compatibility with old versions of this plugin. Group names will be plural (ie. "sites_mysite" instead of "site_mysite") The choices of group_by will be changed by this option. | |
query_filters list / elements=string | Default: [] | List of parameters passed to the query string for both devices and VMs (Multiple values may be separated by commas) | |
services boolean added in 0.2.0 of netbox.netbox |
| If True, it adds the device or virtual machine services information in host vars. | |
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. | |
timeout integer | Default: 60 | Timeout for Netbox requests in seconds | |
token string | env:NETBOX_TOKEN env:NETBOX_API_KEY | NetBox API token to be able to read against NetBox. This may not be required depending on the NetBox setup. | |
validate_certs boolean |
| Allows connection when SSL certificates are not valid. Set to false when certificates are not trusted. | |
vm_query_filters list / elements=string | Default: [] | List of parameters passed to the query string for VMs (Multiple values may be separated by commas) |
# netbox_inventory.yml file in YAML format # Example command line: ansible-inventory -v --list -i netbox_inventory.yml plugin: netbox.netbox.nb_inventory api_endpoint: http://localhost:8000 validate_certs: True config_context: False group_by: - device_roles query_filters: - role: network-edge-router device_query_filters: - has_primary_ip: 'true' # has_primary_ip is a useful way to filter out patch panels and other passive devices # Query filters are passed directly as an argument to the fetching queries. # You can repeat tags in the query string. query_filters: - role: server - tag: web - tag: production # See the NetBox documentation at https://netbox.readthedocs.io/en/latest/api/overview/ # the query_filters work as a logical **OR** # # Prefix any custom fields with cf_ and pass the field value with the regular NetBox query string query_filters: - cf_foo: bar # NetBox inventory plugin also supports Constructable semantics # You can fill your hosts vars using the compose option: plugin: netbox.netbox.nb_inventory compose: foo: last_updated bar: display_name nested_variable: rack.display_name
© 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/netbox/netbox/nb_inventory_inventory.html