Skip to content

device

Collection Note

This module is part of the networktocode.nautobot collection. To install the collection, use:

ansible-galaxy collection install networktocode.nautobot
You need further requirements to be able to use this module, see the Requirements section for details.

Synopsis

  • Creates, updates or removes devices from Nautobot

Requirements

The following Python packages are needed on the host that executes this module:

Parameters

Parameter Data Type Environment Variable Comments
api_version str API Version Nautobot REST API
Version Added: 4.1.0
asset_tag str Asset tag that is associated to the device
Version Added: 3.0.0
cluster raw Cluster that the device will be assigned to
Version Added: 3.0.0
comments str Comments that may include additional information in regards to the device
Version Added: 3.0.0
controller_managed_device_group raw Device controller_managed_device_group the device will be assigned to Requires Nautobot C(v2.2) or later
Version Added: 5.7.0
custom_fields dict Must exist in Nautobot and in key/value format
Version Added: 3.0.0
device_redundancy_group raw Device redundancy group the device will be assigned to
Version Added: 5.1.0
device_redundancy_group_priority int Priority in the assigned device redundancy group
Version Added: 5.1.0
device_type raw Required if I(state=present) and the device does not exist yet
Version Added: 3.0.0
face str Required if I(rack) is defined
Version Added: 3.0.0
local_config_context_data dict Arbitrary JSON data to define the devices configuration variables.
Version Added: 3.0.0
location raw Required if I(state=present) and the device does not exist yet
Version Added: 3.0.0
name
required
str The name of the device
Version Added: 3.0.0
platform raw The platform of the device
Version Added: 3.0.0
position int The position of the device in the rack defined above
Version Added: 3.0.0
primary_ip4 raw Primary IPv4 address assigned to the device
Version Added: 3.0.0
primary_ip6 raw Primary IPv6 address assigned to the device
Version Added: 3.0.0
query_params list This can be used to override the specified values in ALLOWED_QUERY_PARAMS that is defined in plugins/module_utils/utils.py and provides control to users on what may make an object unique in their environment.
Version Added: 3.0.0
rack raw The name of the rack to assign the device to
Version Added: 3.0.0
role raw Required if I(state=present) and the device does not exist yet
Version Added: 3.0.0
serial str Serial number of the device
Version Added: 3.0.0
state str Use C(present) or C(absent) for adding or removing.
status raw The status of the device Required if I(state=present) and the device does not exist yet
Version Added: 3.0.0
tags list Any tags that this item may need to be associated with
Version Added: 3.0.0
tenant raw The tenant that the device will be assigned to
Version Added: 3.0.0
token
required
str The token created within Nautobot to authorize API access Can be omitted if the E(NAUTOBOT_TOKEN) environment variable is configured.
url
required
str The URL of the Nautobot instance resolvable by the Ansible host (for example: http://nautobot.example.com:8000) Can be omitted if the E(NAUTOBOT_URL) environment variable is configured.
validate_certs raw If C(no), SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates. Can be omitted if the E(NAUTOBOT_VALIDATE_CERTS) environment variable is configured.
vc_position int Position in the assigned virtual chassis
Version Added: 3.0.0
vc_priority int Priority in the assigned virtual chassis
Version Added: 3.0.0
virtual_chassis raw Virtual chassis the device will be assigned to
Version Added: 3.0.0

Notes

Note

  • Tags should be defined as a YAML list
  • This should be ran with connection C(local) and hosts C(localhost)

Examples

- name: "Test Nautobot modules"
  connection: local
  hosts: localhost
  gather_facts: False

  tasks:
    - name: Create device within Nautobot with only required information
      networktocode.nautobot.device:
        url: http://nautobot.local
        token: thisIsMyToken
        name: Test Device
        device_type: C9410R
        role: Core Switch
        location: My Location
        status: active
        state: present

    - name: Create device within Nautobot with empty string name to generate UUID
      networktocode.nautobot.device:
        url: http://nautobot.local
        token: thisIsMyToken
        name: ""
        device_type: C9410R
        role: Core Switch
        location:
          name: My Location
          parent: Parent Location
        status: active
        state: present

    - name: Delete device within nautobot
      networktocode.nautobot.device:
        url: http://nautobot.local
        token: thisIsMyToken
        name: Test Device
        state: absent

    - name: Create device with tags
      networktocode.nautobot.device:
        url: http://nautobot.local
        token: thisIsMyToken
        name: Another Test Device
        device_type: C9410R
        role: Core Switch
        location:
          name: My Location
          parent: Parent Location
        status: active
        local_config_context_data:
          bgp: "65000"
        tags:
          - Schnozzberry
        state: present

    - name: Update the rack and position of an existing device
      networktocode.nautobot.device:
        url: http://nautobot.local
        token: thisIsMyToken
        name: Test Device
        rack: Test Rack
        position: 10
        face: Front
        state: present

Return Values

Key Data Type Description Returned
device dict Serialized object as created or already existent within Nautobot success (when I(state=present))
msg str Message indicating failure or info about what has been achieved always

Authors

  • Mikhail Yohman (@fragmentedpacket)
  • David Gomez (@amb1s1)