Skip to content

Latest commit

 

History

History
1464 lines (768 loc) · 32.4 KB

netbox_device_module.rst

File metadata and controls

1464 lines (768 loc) · 32.4 KB
orphan:

netbox.netbox.netbox_device module -- Create, update or delete devices within NetBox

Note

This module is part of the netbox.netbox collection (version 3.12.0).

To install it, use: ansible-galaxy collection install netbox.netbox. You need further requirements to be able to use this module, see :ref:`Requirements <ansible_collections.netbox.netbox.netbox_device_module_requirements>` for details.

To use it in a playbook, specify: netbox.netbox.netbox_device.

.. rst-class:: ansible-version-added

New in netbox.netbox 0.1.0

  • Creates, updates or removes devices from NetBox

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

  • pynetbox
.. rst-class:: ansible-option-table

Parameter Comments
.. rst-class:: ansible-option-title

cert

.. rst-class:: ansible-option-type-line

any

Certificate path

.. rst-class:: ansible-option-title

data

.. rst-class:: ansible-option-type-line

dictionary / required

Defines the device configuration

.. rst-class:: ansible-option-title

airflow

.. rst-class:: ansible-option-type-line

string

added in netbox.netbox 3.10.0

.. rst-class:: ansible-option-title

asset_tag

.. rst-class:: ansible-option-type-line

string

Asset tag that is associated to the device

.. rst-class:: ansible-option-title

cluster

.. rst-class:: ansible-option-type-line

any

Cluster that the device will be assigned to

.. rst-class:: ansible-option-title

comments

.. rst-class:: ansible-option-type-line

string

Comments that may include additional information in regards to the device

.. rst-class:: ansible-option-title

custom_fields

.. rst-class:: ansible-option-type-line

dictionary

must exist in NetBox

.. rst-class:: ansible-option-title

description

.. rst-class:: ansible-option-type-line

string

added in netbox.netbox 3.10.0

Description of the provider

.. rst-class:: ansible-option-title

device_role

.. rst-class:: ansible-option-type-line

any

Required if state=present and the device does not exist yet

.. rst-class:: ansible-option-title

device_type

.. rst-class:: ansible-option-type-line

any

Required if state=present and the device does not exist yet

.. rst-class:: ansible-option-title

face

.. rst-class:: ansible-option-type-line

string

.. rst-class:: ansible-option-title

local_context_data

.. rst-class:: ansible-option-type-line

dictionary

Arbitrary JSON data to define the devices configuration variables.

.. rst-class:: ansible-option-title

location

.. rst-class:: ansible-option-type-line

any

added in netbox.netbox 3.3.0

The location the device will be associated to (NetBox 2.11+)

.. rst-class:: ansible-option-title

name

.. rst-class:: ansible-option-type-line

string / required

The name of the device

.. rst-class:: ansible-option-title

platform

.. rst-class:: ansible-option-type-line

any

The platform of the device

.. rst-class:: ansible-option-title

position

.. rst-class:: ansible-option-type-line

integer

The position of the device in the rack defined above

.. rst-class:: ansible-option-title

primary_ip4

.. rst-class:: ansible-option-type-line

any

Primary IPv4 address assigned to the device

.. rst-class:: ansible-option-title

primary_ip6

.. rst-class:: ansible-option-type-line

any

Primary IPv6 address assigned to the device

.. rst-class:: ansible-option-title

rack

.. rst-class:: ansible-option-type-line

any

The name of the rack to assign the device to

.. rst-class:: ansible-option-title

serial

.. rst-class:: ansible-option-type-line

string

Serial number of the device

.. rst-class:: ansible-option-title

site

.. rst-class:: ansible-option-type-line

any

Required if state=present and the device does not exist yet

.. rst-class:: ansible-option-title

status

.. rst-class:: ansible-option-type-line

any

The status of the device

.. rst-class:: ansible-option-title

tags

.. rst-class:: ansible-option-type-line

list / elements=any

Any tags that the device may need to be associated with

.. rst-class:: ansible-option-title

tenant

.. rst-class:: ansible-option-type-line

any

The tenant that the device will be assigned to

.. rst-class:: ansible-option-title

vc_position

.. rst-class:: ansible-option-type-line

integer

Position in the assigned virtual chassis

.. rst-class:: ansible-option-title

vc_priority

.. rst-class:: ansible-option-type-line

integer

Priority in the assigned virtual chassis

.. rst-class:: ansible-option-title

virtual_chassis

.. rst-class:: ansible-option-type-line

any

Virtual chassis the device will be assigned to

.. rst-class:: ansible-option-title

netbox_token

.. rst-class:: ansible-option-type-line

string / required

The NetBox API token.

.. rst-class:: ansible-option-title

netbox_url

.. rst-class:: ansible-option-type-line

string / required

The URL of the NetBox instance.

Must be accessible by the Ansible control host.

.. rst-class:: ansible-option-title

query_params

.. rst-class:: ansible-option-type-line

list / elements=string

This can be used to override the specified values in ALLOWED_QUERY_PARAMS that are defined

in plugins/module_utils/netbox_utils.py and provides control to users on what may make

an object unique in their environment.

.. rst-class:: ansible-option-title

state

.. rst-class:: ansible-option-type-line

string

The state of the object.

.. rst-class:: ansible-option-line

Choices:

.. rst-class:: ansible-option-title

validate_certs

.. rst-class:: ansible-option-type-line

any

If no, SSL certificates will not be validated.

This should only be used on personally controlled sites using a self-signed certificates.

.. rst-class:: ansible-option-line

Default: :ansible-option-default:`true`

Note

  • Tags should be defined as a YAML list
  • This should be ran with connection local and hosts localhost
- name: "Test NetBox modules"
  connection: local
  hosts: localhost
  gather_facts: False

  tasks:
    - name: Create device within NetBox with only required information
      netbox.netbox.netbox_device:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          name: Test Device
          device_type: C9410R
          device_role: Core Switch
          site: Main
        state: present

    - name: Create device within NetBox with empty string name to generate UUID
      netbox.netbox.netbox_device:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          name: ""
          device_type: C9410R
          device_role: Core Switch
          site: Main
        state: present

    - name: Delete device within netbox
      netbox.netbox.netbox_device:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          name: Test Device
        state: absent

    - name: Create device with tags
      netbox.netbox.netbox_device:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          name: Another Test Device
          device_type: C9410R
          device_role: Core Switch
          site: Main
          local_context_data:
            bgp: "65000"
          tags:
            - Schnozzberry
        state: present

    - name: Update the rack and position of an existing device
      netbox.netbox.netbox_device:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          name: Test Device
          rack: Test Rack
          position: 10
          face: Front
        state: present

Common return values are documented :ref:`here <common_return_values>`, the following are the fields unique to this module:

.. rst-class:: ansible-option-table

Key Description
.. rst-class:: ansible-option-title

device

.. rst-class:: ansible-option-type-line

dictionary

Serialized object as created or already existent within NetBox

.. rst-class:: ansible-option-line

Returned: success (when state=present)

.. rst-class:: ansible-option-title

msg

.. rst-class:: ansible-option-type-line

string

Message indicating failure or info about what has been achieved

.. rst-class:: ansible-option-line

Returned: always

Authors

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

Collection links

Issue Tracker Repository (Sources)