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
Added in version 1.0.0.

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 Defaults / Choices 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
clusters
dict
List of clusters to associate with this device.
Version Added: 6.2.0
clusters.objects List of clusters to associate.
clusters.state Default: merge
Choices: merge, replace, delete
C(merge) adds associations without removing existing ones.
C(replace) enforces exactly the listed associations, removing any extras.
C(delete) removes the listed associations.
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
Recommended when updating or deleting if not using I(id) or I(name) to aid with identification
Version Added: 3.0.0
face
str
Choices: Front, front, Rear, rear Required if I(rack) is defined
Version Added: 3.0.0
id
str
The UUID of the object to operate on
Version Added: 5.13.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
Recommended when updating or deleting if not using I(id) or I(name) to aid with identification
Version Added: 3.0.0
name
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 / elements=str
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
Recommended when updating or deleting if not using I(id) or I(name) to aid with identification
Version Added: 3.0.0
secrets_group
raw
The secrets_group of the device
Version Added: 5.12.0
serial
str
Serial number of the device
Version Added: 3.0.0
software_image_files
raw
Override the software image files associated with the software version for this inventory item
Version Added: 5.13.0
software_version
raw
The software version associated with the device
Version Added: 5.13.0
state
str
Default: present
Choices: absent, present
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 / elements=raw
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
str
required
The token created within Nautobot to authorize API access
Can be omitted if the E(NAUTOBOT_TOKEN) environment variable is configured.
url
str
required
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
Default: True
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
vrfs
dict
List of VRFs to associate with this device.
Version Added: 6.2.0
vrfs.objects List of VRFs to associate.
vrfs.state Default: merge
Choices: merge, replace, delete
C(merge) adds associations without removing existing ones.
C(replace) enforces exactly the listed associations, removing any extras.
C(delete) removes the listed associations.

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 name
      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: Delete device within nautobot with name
      networktocode.nautobot.device:
        url: http://nautobot.local
        token: thisIsMyToken
        name: Test Device
        state: absent

    - name: Rename device via ID
      networktocode.nautobot.device:
        url: http://nautobot.local
        token: thisIsMyToken
        id: 15b91de1-448d-4ff7-a00e-0a6816e8bf71
        name: New Name
        state: present

    - name: Delete device via ID
      networktocode.nautobot.device:
        url: http://nautobot.local
        token: thisIsMyToken
        id: 15b91de1-448d-4ff7-a00e-0a6816e8bf71
        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: Create device within Nautobot with secrets_group
      networktocode.nautobot.device:
        url: http://nautobot.local
        token: thisIsMyToken
        name: TopSecretDevice
        device_type: C9410R
        role: Core Switch
        location: My Location
        secrets_group: "Test Secrets Group"
        status: active
        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

    - name: Create device with inline cluster associations
      networktocode.nautobot.device:
        url: http://nautobot.local
        token: thisIsMyToken
        name: Test Device
        clusters:
          state: merge
          objects:
            - cluster: Test Cluster
        state: present

    - name: Create device with inline VRF associations
      networktocode.nautobot.device:
        url: http://nautobot.local
        token: thisIsMyToken
        name: Test Device
        vrfs:
          state: merge
          objects:
            - vrf: Test VRF
        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)