` for details.
To use it in a playbook, specify: :code:`netbox.netbox.netbox_device`.
.. version_added
.. rst-class:: ansible-version-added
New in netbox.netbox 0.1.0
.. contents::
:local:
:depth: 1
.. Deprecated
Synopsis
--------
.. Description
- Creates, updates or removes devices from NetBox
.. Aliases
.. Requirements
.. _ansible_collections.netbox.netbox.netbox_device_module_requirements:
Requirements
------------
The below requirements are needed on the host that executes this module.
- pynetbox
.. Options
Parameters
----------
.. tabularcolumns:: \X{1}{3}\X{2}{3}
.. list-table::
:width: 100%
:widths: auto
:header-rows: 1
:class: longtable ansible-option-table
* - Parameter
- Comments
* - .. raw:: html
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-cert:
.. rst-class:: ansible-option-title
**cert**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
- .. raw:: html
Certificate path
.. raw:: html
* - .. raw:: html
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data:
.. rst-class:: ansible-option-title
**data**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`dictionary` / :ansible-option-required:`required`
.. raw:: html
- .. raw:: html
Defines the device configuration
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/airflow:
.. rst-class:: ansible-option-title
**airflow**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`string`
:ansible-option-versionadded:`added in netbox.netbox 3.10.0`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Airflow of the device
.. rst-class:: ansible-option-line
:ansible-option-choices:`Choices:`
- :ansible-option-choices-entry:`"front-to-rear"`
- :ansible-option-choices-entry:`"rear-to-front"`
- :ansible-option-choices-entry:`"left-to-right"`
- :ansible-option-choices-entry:`"right-to-left"`
- :ansible-option-choices-entry:`"side-to-rear"`
- :ansible-option-choices-entry:`"passive"`
- :ansible-option-choices-entry:`"mixed"`
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/asset_tag:
.. rst-class:: ansible-option-title
**asset_tag**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`string`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Asset tag that is associated to the device
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/cluster:
.. rst-class:: ansible-option-title
**cluster**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Cluster that the device will be assigned to
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/comments:
.. rst-class:: ansible-option-title
**comments**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`string`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Comments that may include additional information in regards to the device
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/config_template:
.. rst-class:: ansible-option-title
**config_template**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
:ansible-option-versionadded:`added in netbox.netbox 3.17.0`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Configuration template
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/custom_fields:
.. rst-class:: ansible-option-title
**custom_fields**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`dictionary`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
must exist in NetBox
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/description:
.. rst-class:: ansible-option-title
**description**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`string`
:ansible-option-versionadded:`added in netbox.netbox 3.10.0`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Description of the provider
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/device_role:
.. rst-class:: ansible-option-title
**device_role**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Required if :emphasis:`state=present` and the device does not exist yet
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/device_type:
.. rst-class:: ansible-option-title
**device_type**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Required if :emphasis:`state=present` and the device does not exist yet
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/face:
.. rst-class:: ansible-option-title
**face**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`string`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Required if :emphasis:`rack` is defined
.. rst-class:: ansible-option-line
:ansible-option-choices:`Choices:`
- :ansible-option-choices-entry:`"Front"`
- :ansible-option-choices-entry:`"front"`
- :ansible-option-choices-entry:`"Rear"`
- :ansible-option-choices-entry:`"rear"`
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/local_context_data:
.. rst-class:: ansible-option-title
**local_context_data**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`dictionary`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Arbitrary JSON data to define the devices configuration variables.
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/location:
.. rst-class:: ansible-option-title
**location**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
:ansible-option-versionadded:`added in netbox.netbox 3.3.0`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
The location the device will be associated to (NetBox 2.11+)
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/name:
.. rst-class:: ansible-option-title
**name**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`string` / :ansible-option-required:`required`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
The name of the device
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/oob_ip:
.. rst-class:: ansible-option-title
**oob_ip**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
:ansible-option-versionadded:`added in netbox.netbox 3.15.0`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Out-of-band (OOB) IP address assigned to the device
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/platform:
.. rst-class:: ansible-option-title
**platform**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
The platform of the device
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/position:
.. rst-class:: ansible-option-title
**position**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`float`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
The position of the device in the rack defined above
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/primary_ip4:
.. rst-class:: ansible-option-title
**primary_ip4**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Primary IPv4 address assigned to the device
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/primary_ip6:
.. rst-class:: ansible-option-title
**primary_ip6**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Primary IPv6 address assigned to the device
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/rack:
.. rst-class:: ansible-option-title
**rack**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
The name of the rack to assign the device to
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/serial:
.. rst-class:: ansible-option-title
**serial**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`string`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Serial number of the device
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/site:
.. rst-class:: ansible-option-title
**site**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Required if :emphasis:`state=present` and the device does not exist yet
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/status:
.. rst-class:: ansible-option-title
**status**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
The status of the device
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/tags:
.. rst-class:: ansible-option-title
**tags**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`list` / :ansible-option-elements:`elements=any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Any tags that the device may need to be associated with
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/tenant:
.. rst-class:: ansible-option-title
**tenant**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
The tenant that the device will be assigned to
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/vc_position:
.. rst-class:: ansible-option-title
**vc_position**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`integer`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Position in the assigned virtual chassis
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/vc_priority:
.. rst-class:: ansible-option-title
**vc_priority**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`integer`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Priority in the assigned virtual chassis
.. raw:: html
* - .. raw:: html
.. raw:: latex
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-data/virtual_chassis:
.. rst-class:: ansible-option-title
**virtual_chassis**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
.. raw:: latex
\end{minipage}
- .. raw:: html
Virtual chassis the device will be assigned to
.. raw:: html
* - .. raw:: html
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-netbox_token:
.. rst-class:: ansible-option-title
**netbox_token**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`string` / :ansible-option-required:`required`
.. raw:: html
- .. raw:: html
The NetBox API token.
.. raw:: html
* - .. raw:: html
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-netbox_url:
.. rst-class:: ansible-option-title
**netbox_url**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`string` / :ansible-option-required:`required`
.. raw:: html
- .. raw:: html
The URL of the NetBox instance.
Must be accessible by the Ansible control host.
.. raw:: html
* - .. raw:: html
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-query_params:
.. rst-class:: ansible-option-title
**query_params**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`list` / :ansible-option-elements:`elements=string`
.. raw:: html
- .. raw:: html
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.
.. raw:: html
* - .. raw:: html
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-state:
.. rst-class:: ansible-option-title
**state**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`string`
.. raw:: html
- .. raw:: html
The state of the object.
.. rst-class:: ansible-option-line
:ansible-option-choices:`Choices:`
- :ansible-option-choices-entry-default:`"present"` :ansible-option-choices-default-mark:`← (default)`
- :ansible-option-choices-entry:`"absent"`
.. raw:: html
* - .. raw:: html
.. _ansible_collections.netbox.netbox.netbox_device_module__parameter-validate_certs:
.. rst-class:: ansible-option-title
**validate_certs**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`any`
.. raw:: html
- .. raw:: html
If :literal:`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
:ansible-option-default-bold:`Default:` :ansible-option-default:`true`
.. raw:: html
.. Attributes
.. Notes
Notes
-----
.. note::
- Tags should be defined as a YAML list
- This should be ran with connection :literal:`local` and hosts :literal:`localhost`
.. Seealso
.. Examples
Examples
--------
.. code-block:: yaml+jinja
- 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.5
face: Front
state: present
.. Facts
.. Return values
Return Values
-------------
Common return values are documented :ref:`here `, the following are the fields unique to this module:
.. tabularcolumns:: \X{1}{3}\X{2}{3}
.. list-table::
:width: 100%
:widths: auto
:header-rows: 1
:class: longtable ansible-option-table
* - Key
- Description
* - .. raw:: html
.. _ansible_collections.netbox.netbox.netbox_device_module__return-device:
.. rst-class:: ansible-option-title
**device**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`dictionary`
.. raw:: html
- .. raw:: html
Serialized object as created or already existent within NetBox
.. rst-class:: ansible-option-line
:ansible-option-returned-bold:`Returned:` success (when :emphasis:`state=present`\ )
.. raw:: html
* - .. raw:: html
.. _ansible_collections.netbox.netbox.netbox_device_module__return-msg:
.. rst-class:: ansible-option-title
**msg**
.. raw:: html
.. ansible-option-type-line::
:ansible-option-type:`string`
.. raw:: html
- .. raw:: html
Message indicating failure or info about what has been achieved
.. rst-class:: ansible-option-line
:ansible-option-returned-bold:`Returned:` always
.. raw:: html
.. Status (Presently only deprecated)
.. Authors
Authors
~~~~~~~
- Mikhail Yohman (@FragmentedPacket)
- David Gomez (@amb1s1)
.. Extra links
Collection links
~~~~~~~~~~~~~~~~
.. ansible-links::
- title: "Issue Tracker"
url: "https://github.com/netbox-community/ansible_modules/issues"
external: true
- title: "Repository (Sources)"
url: "https://github.com/netbox-community/ansible_modules"
external: true
.. Parsing errors