On this page
netbox.netbox.netbox_device – Create, update or delete devices within Netbox
Note
This plugin is part of the netbox.netbox collection (version 3.3.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 netbox.netbox
.
To use it in a playbook, specify: netbox.netbox.netbox_device
.
New in version 0.1.0: of netbox.netbox
Synopsis
- Creates, updates or removes devices from Netbox
Requirements
The below requirements are needed on the host that executes this module.
- pynetbox
Parameters
Parameter | Choices/Defaults | Comments | |
---|---|---|---|
cert
raw
|
Certificate path
|
||
data
dictionary / required
|
Defines the device configuration
|
||
asset_tag
string
|
Asset tag that is associated to the device
|
||
cluster
raw
|
Cluster that the device will be assigned to
|
||
comments
string
|
Comments that may include additional information in regards to the device
|
||
custom_fields
dictionary
|
must exist in Netbox
|
||
device_role
raw
|
Required if state=present and the device does not exist yet
|
||
device_type
raw
|
Required if state=present and the device does not exist yet
|
||
face
string
|
|
Required if rack is defined
|
|
local_context_data
dictionary
|
Arbitrary JSON data to define the devices configuration variables.
|
||
location
raw
added in 3.3.0 of netbox.netbox
|
The location the device will be associated to (NetBox 2.11+)
|
||
name
string / required
|
The name of the device
|
||
platform
raw
|
The platform of the device
|
||
position
integer
|
The position of the device in the rack defined above
|
||
primary_ip4
raw
|
Primary IPv4 address assigned to the device
|
||
primary_ip6
raw
|
Primary IPv6 address assigned to the device
|
||
rack
raw
|
The name of the rack to assign the device to
|
||
serial
string
|
Serial number of the device
|
||
site
raw
|
Required if state=present and the device does not exist yet
|
||
status
raw
|
The status of the device
|
||
tags
list / elements=raw
|
Any tags that the device may need to be associated with
|
||
tenant
raw
|
The tenant that the device will be assigned to
|
||
vc_position
integer
|
Position in the assigned virtual chassis
|
||
vc_priority
integer
|
Priority in the assigned virtual chassis
|
||
virtual_chassis
raw
|
Virtual chassis the device will be assigned to
|
||
netbox_token
string / required
|
The token created within Netbox to authorize API access
|
||
netbox_url
string / required
|
URL of the Netbox instance resolvable by Ansible control host
|
||
query_params
list / elements=string
|
This can be used to override the specified values in ALLOWED_QUERY_PARAMS that is defined
in plugins/module_utils/netbox_utils.py and provides control to users on what may make
an object unique in their environment.
|
||
state
string
|
|
Use present or absent for adding or removing.
|
|
validate_certs
raw
|
Default:
"yes"
|
If no , SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates.
|
Notes
Note
- Tags should be defined as a YAML list
- This should be ran with connection
local
and hostslocalhost
Examples
- name: "Test Netbox modules"
connection: local
hosts: localhost
gather_facts: False
tasks:
- name: Create device within Netbox with only required information
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_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_device:
netbox_url: http://netbox.local
netbox_token: thisIsMyToken
data:
name: Test Device
state: absent
- name: Create device with tags
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_device:
netbox_url: http://netbox.local
netbox_token: thisIsMyToken
data:
name: Test Device
rack: Test Rack
position: 10
face: Front
state: present
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
device
dictionary
|
success (when state=present) |
Serialized object as created or already existent within Netbox
|
msg
string
|
always |
Message indicating failure or info about what has been achieved
|
Authors
- Mikhail Yohman (@FragmentedPacket)
- David Gomez (@amb1s1)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/netbox/netbox/netbox_device_module.html