cisco.meraki.devices_info module – Information module for devices

Note

This module is part of the cisco.meraki collection (version 2.17.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install cisco.meraki. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: cisco.meraki.devices_info.

New in cisco.meraki 2.16.0

Synopsis

  • Get all devices.

  • Get devices by id.

  • List the devices in an organization.

  • Return a single device.

Note

This module has a corresponding action plugin.

Requirements

The below requirements are needed on the host that executes this module.

  • meraki >= 2.4.9

  • python >= 3.5

Parameters

Parameter

Comments

configurationUpdatedAfter

string

ConfigurationUpdatedAfter query parameter. Filter results by whether or not the device’s configuration has been updated after the given timestamp.

direction

string

direction (string), direction to paginate, either “next” (default) or “prev” page

Default: "https://api.meraki.com/api/v1"

endingBefore

string

EndingBefore query parameter. A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.

headers

dictionary

Additional headers.

mac

string

Mac query parameter. Optional parameter to filter devices by MAC address. All returned devices will have a MAC address that contains the search term or is an exact match.

macs

list / elements=string

Macs query parameter. Optional parameter to filter devices by one or more MAC addresses. All returned devices will have a MAC address that is an exact match.

meraki_action_batch_retry_wait_time

integer

meraki_action_batch_retry_wait_time (integer), action batch concurrency error retry wait time

Default: 60

meraki_api_key

string / required

meraki_api_key (string), API key generated in dashboard; can also be set as an environment variable MERAKI_DASHBOARD_API_KEY

meraki_base_url

string

meraki_base_url (string), preceding all endpoint resources

Default: "https://api.meraki.com/api/v1"

meraki_be_geo_id

string

meraki_be_geo_id (string), optional partner identifier for API usage tracking; can also be set as an environment variable BE_GEO_ID

Default: ""

meraki_caller

string

meraki_caller (string), optional identifier for API usage tracking; can also be set as an environment variable MERAKI_PYTHON_SDK_CALLER

Default: ""

meraki_certificate_path

string

meraki_certificate_path (string), path for TLS/SSL certificate verification if behind local proxy

Default: ""

meraki_inherit_logging_config

boolean

meraki_inherit_logging_config (boolean), Inherits your own logger instance

Choices:

  • false ← (default)

  • true

meraki_log_file_prefix

string

meraki_log_file_prefix (string), log file name appended with date and timestamp

Default: "meraki_api_"

meraki_log_path

string

log_path (string), path to output log; by default, working directory of script if not specified

Default: ""

meraki_maximum_retries

integer

meraki_maximum_retries (integer), retry up to this many times when encountering 429s or other server-side errors

Default: 2

meraki_nginx_429_retry_wait_time

integer

meraki_nginx_429_retry_wait_time (integer), Nginx 429 retry wait time

Default: 60

meraki_output_log

boolean

meraki_output_log (boolean), create an output log file?

Choices:

  • false

  • true ← (default)

meraki_print_console

boolean

meraki_print_console (boolean), print logging output to console?

Choices:

  • false

  • true ← (default)

meraki_requests_proxy

string

meraki_requests_proxy (string), proxy server and port, if needed, for HTTPS

Default: ""

meraki_retry_4xx_error

boolean

meraki_retry_4xx_error (boolean), retry if encountering other 4XX error (besides 429)?

Choices:

  • false ← (default)

  • true

meraki_retry_4xx_error_wait_time

integer

meraki_retry_4xx_error_wait_time (integer), other 4XX error retry wait time

Default: 60

meraki_simulate

boolean

meraki_simulate (boolean), simulate POST/PUT/DELETE calls to prevent changes?

Choices:

  • false ← (default)

  • true

meraki_single_request_timeout

integer

meraki_single_request_timeout (integer), maximum number of seconds for each API call

Default: 60

meraki_suppress_logging

boolean

meraki_suppress_logging (boolean), disable all logging? you’re on your own then!

Choices:

  • false ← (default)

  • true

meraki_use_iterator_for_get_pages

boolean

meraki_use_iterator_for_get_pages (boolean), list* methods will return an iterator with each object instead of a complete list with all items

Choices:

  • false ← (default)

  • true

meraki_wait_on_rate_limit

boolean

meraki_wait_on_rate_limit (boolean), retry if 429 rate limit error encountered?

Choices:

  • false

  • true ← (default)

model

string

Model query parameter. Optional parameter to filter devices by model. All returned devices will have a model that contains the search term or is an exact match.

models

list / elements=string

Models query parameter. Optional parameter to filter devices by one or more models. All returned devices will have a model that is an exact match.

name

string

Name query parameter. Optional parameter to filter devices by name. All returned devices will have a name that contains the search term or is an exact match.

networkIds

list / elements=string

NetworkIds query parameter. Optional parameter to filter devices by network.

organizationId

string

OrganizationId path parameter. Organization ID.

perPage

integer

PerPage query parameter. The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.

productTypes

list / elements=string

ProductTypes query parameter. Optional parameter to filter devices by product type. Valid types are wireless, appliance, switch, systemsManager, camera, cellularGateway, and sensor.

sensorAlertProfileIds

list / elements=string

SensorAlertProfileIds query parameter. Optional parameter to filter devices by the alert profiles that are bound to them. Only applies to sensor devices.

sensorMetrics

list / elements=string

SensorMetrics query parameter. Optional parameter to filter devices by the metrics that they provide. Only applies to sensor devices.

serial

string

Serial path parameter.

serials

list / elements=string

Serials query parameter. Optional parameter to filter devices by one or more serial numbers. All returned devices will have a serial number that is an exact match.

startingAfter

string

StartingAfter query parameter. A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.

tags

list / elements=string

Tags query parameter. Optional parameter to filter devices by tags.

tagsFilterType

string

TagsFilterType query parameter. Optional parameter of value ‘withAnyTags’ or ‘withAllTags’ to indicate whether to return networks which contain ANY or ALL of the included tags. If no type is included, ‘withAnyTags’ will be selected.

total_pages

string / required

total_pages(int), use with perPage to get total results up to total_pages*perPage; -1 for all pages

Notes

Note

  • SDK Method used are devices.Devices.get_device, devices.Devices.get_organization_devices,

  • Paths used are get /devices/{serial}, get /organizations/{organizationId}/devices,

  • Supports check_mode

  • The plugin runs on the control node and does not use any ansible connection plugins, but instead the embedded connection manager from Cisco meraki SDK

  • The parameters starting with meraki_ are used by the Cisco meraki Python SDK to establish the connection

See Also

See also

Cisco Meraki documentation for devices getDevice

Complete reference of the getDevice API.

Cisco Meraki documentation for devices getOrganizationDevices

Complete reference of the getOrganizationDevices API.

Examples

- name: Get all devices
  cisco.meraki.devices_info:
    meraki_api_key: "{{meraki_api_key}}"
    meraki_base_url: "{{meraki_base_url}}"
    meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
    meraki_certificate_path: "{{meraki_certificate_path}}"
    meraki_requests_proxy: "{{meraki_requests_proxy}}"
    meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
    meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
    meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
    meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
    meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
    meraki_maximum_retries: "{{meraki_maximum_retries}}"
    meraki_output_log: "{{meraki_output_log}}"
    meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
    meraki_log_path: "{{meraki_log_path}}"
    meraki_print_console: "{{meraki_print_console}}"
    meraki_suppress_logging: "{{meraki_suppress_logging}}"
    meraki_simulate: "{{meraki_simulate}}"
    meraki_be_geo_id: "{{meraki_be_geo_id}}"
    meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
    meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
    perPage: 0
    startingAfter: string
    endingBefore: string
    configurationUpdatedAfter: string
    networkIds: []
    productTypes: []
    tags: []
    tagsFilterType: string
    name: string
    mac: string
    serial: string
    model: string
    macs: []
    serials: []
    sensorMetrics: []
    sensorAlertProfileIds: []
    models: []
    organizationId: string
    total_pages: -1
    direction: next
  register: result

- name: Get devices by id
  cisco.meraki.devices_info:
    meraki_api_key: "{{meraki_api_key}}"
    meraki_base_url: "{{meraki_base_url}}"
    meraki_single_request_timeout: "{{meraki_single_request_timeout}}"
    meraki_certificate_path: "{{meraki_certificate_path}}"
    meraki_requests_proxy: "{{meraki_requests_proxy}}"
    meraki_wait_on_rate_limit: "{{meraki_wait_on_rate_limit}}"
    meraki_nginx_429_retry_wait_time: "{{meraki_nginx_429_retry_wait_time}}"
    meraki_action_batch_retry_wait_time: "{{meraki_action_batch_retry_wait_time}}"
    meraki_retry_4xx_error: "{{meraki_retry_4xx_error}}"
    meraki_retry_4xx_error_wait_time: "{{meraki_retry_4xx_error_wait_time}}"
    meraki_maximum_retries: "{{meraki_maximum_retries}}"
    meraki_output_log: "{{meraki_output_log}}"
    meraki_log_file_prefix: "{{meraki_log_file_prefix}}"
    meraki_log_path: "{{meraki_log_path}}"
    meraki_print_console: "{{meraki_print_console}}"
    meraki_suppress_logging: "{{meraki_suppress_logging}}"
    meraki_simulate: "{{meraki_simulate}}"
    meraki_be_geo_id: "{{meraki_be_geo_id}}"
    meraki_use_iterator_for_get_pages: "{{meraki_use_iterator_for_get_pages}}"
    meraki_inherit_logging_config: "{{meraki_inherit_logging_config}}"
    serial: string
  register: result

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

meraki_response

list / elements=dictionary

A dictionary or list with the response returned by the Cisco Meraki Python SDK

Returned: always

Sample: "[\n  {\n    \"name\": \"string\",\n    \"lat\": 0,\n    \"lng\": 0,\n    \"address\": \"string\",\n    \"notes\": \"string\",\n    \"tags\": [\n      \"string\"\n    ],\n    \"networkId\": \"string\",\n    \"serial\": \"string\",\n    \"model\": \"string\",\n    \"mac\": \"string\",\n    \"lanIp\": \"string\",\n    \"firmware\": \"string\",\n    \"productType\": \"string\"\n  }\n]\n"

Authors

  • Francisco Munoz (@fmunoz)