Module to query NetBox
codeauthor: | Zach Moody <zmoody@do.co> |
---|---|
maturity: | new |
depends: | pynetbox |
The following config should be in the minion config file. In order to work with secrets
you should provide a token and path to your private key file:
netbox: url: <NETBOX_URL> token: <NETBOX_USERNAME_API_TOKEN (OPTIONAL)> keyfile: </PATH/TO/NETBOX/KEY (OPTIONAL)>
New in version 2018.3.0.
New in version 2019.2.0.
Create a new Netbox circuit
CLI Example:
salt myminion netbox.create_circuit NEW_CIRCUIT_01 Telia Transit 1299 "New Telia circuit"
New in version 2019.2.0.
Create a new Netbox circuit provider
CLI Example:
salt myminion netbox.create_circuit_provider Telia 1299
New in version 2019.2.0.
Terminate a circuit on an interface
CLI Example:
salt myminion netbox.create_circuit_termination NEW_CIRCUIT_01 xe-0/0/1 myminion 10000 xconnect_id=XCON01
New in version 2019.2.0.
Create a new Netbox circuit type.
CLI Example:
salt myminion netbox.create_circuit_type Transit
New in version 2019.2.0.
Create a new device with a name, role, model, manufacturer and site. All these components need to be already in Netbox.
edge_router
router
MX480
Juniper
BRU
CLI Example:
salt myminion netbox.create_device edge_router router MX480 Juniper BRU
New in version 2019.2.0.
Create a device role
router
CLI Example:
salt myminion netbox.create_device_role router
New in version 2019.2.0.
Create a device type. If the manufacturer doesn't exist, create a new manufacturer.
MX480
Juniper
CLI Example:
salt myminion netbox.create_device_type MX480 Juniper
New in version 2019.2.0.
Attach an interface to a device. If not all arguments are provided, they will default to Netbox defaults.
edge_router
TenGigE0/0/0/0
50:87:89:73:92:C8
NTT
True
True
ae13
200
CLI Example:
salt myminion netbox.create_interface edge_router ae13 description="Core uplink"
New in version 2019.2.0.
Create an interface connection between 2 interfaces
CLI Example:
salt myminion netbox.create_interface_connection 123 456
New in version 2019.2.0.
Add an inventory item to an existing device.
edge_router
.Transceiver
.Fiberstore
.FS1238931
.740-01234
.SFP+-10G-LR
.CLI Example:
salt myminion netbox.create_inventory_item edge_router Transceiver part_id=740-01234
New in version 2019.2.0.
Add an IP address, and optionally attach it to an interface.
192.168.1.1/24
4
edge_router
ae13
CLI Example:
salt myminion netbox.create_ipaddress 192.168.1.1/24 4 device=edge_router interface=ae13
New in version 2019.2.0.
Create a device manufacturer.
Juniper
CLI Example:
salt myminion netbox.create_manufacturer Juniper
New in version 2019.2.0.
Create a new device platform
junos
CLI Example:
salt myminion netbox.create_platform junos
New in version 2019.2.0.
Create a new device site
BRU
CLI Example:
salt myminion netbox.create_site BRU
New in version 2019.2.0.
Delete an interface from a device.
edge_router
.ae13
CLI Example:
salt myminion netbox.delete_interface edge_router ae13
New in version 2019.2.0.
Remove an item from a devices inventory. Identified by the netbox id
CLI Example:
salt myminion netbox.delete_inventory_item 1354
New in version 2019.2.0.
Delete an IP address. IP addresses in Netbox are a combination of address and the interface it is assigned to.
CLI Example:
salt myminion netbox.delete_ipaddress 9002
Get a list of items from NetBox.
dcim
, circuits
, ipam
sites
, regions
, devices
role=router
Returns a list of dictionaries
salt myminion netbox.filter dcim devices status=1 role=router
Get a single item from NetBox.
dcim
, circuits
, ipam
sites
, regions
, devices
Returns a single dictionary
To get an item based on ID.
salt myminion netbox.get dcim devices id=123
Or using named arguments that correspond with accepted filters on the NetBox endpoint.
salt myminion netbox.get dcim devices name=my-router
New in version 2019.2.0.
Get a circuit provider with a given name and optional ASN.
CLI Example:
salt myminion netbox.get_circuit_provider Telia 1299
New in version 2019.2.0.
Returns interfaces for a specific device using arbitrary netbox filters
edge_router
CLI Example:
salt myminion netbox.get_interfaces edge_router name="et-0/0/5"
New in version 2019.2.0.
Filters for an IP address using specified filters
family=4
CLI Example:
salt myminion netbox.get_ipaddresses device_name family=4
New in version 2019.2.0.
Set an interface as part of a LAG.
edge_router
.xe-1/0/2
.ae13
.CLI Example:
salt myminion netbox.make_interface_child xe-1/0/2 ae13
New in version 2019.2.0.
Update an interface to be a LAG.
edge_router
.ae13
.CLI Example:
salt myminion netbox.make_interface_lag edge_router ae13
New in version 2019.2.0.
Return a dictionary structured as standardised in the openconfig-interfaces YANG model, containing physical and configuration data available in Netbox, e.g., IP addresses, MTU, enabled / disabled, etc.
None
CLI Example:
salt '*' netbox.openconfig_interfaces salt '*' netbox.openconfig_interfaces device_name=cr1.thn.lon
New in version 2019.2.0.
Return a dictionary structured as standardised in the openconfig-lacp YANG model, with configuration data for Link Aggregation Control Protocol (LACP) for aggregate interfaces.
Note
The interval
and lacp_mode
keys have the values set as SLOW
and ACTIVE
respectively, as this data is not currently available in Netbox, therefore defaulting to the values defined in the standard. See interval and lacp-mode for further details.
None
CLI Example:
salt '*' netbox.openconfig_lacp salt '*' netbox.openconfig_lacp device_name=cr1.thn.lon
' Slugify given value. Credit to Djangoproject https://docs.djangoproject.com/en/2.0/_modules/django/utils/text/#slugify
New in version 2019.2.0.
Add attributes to an existing device, identified by name.
edge_router
serial=JN2932930
CLI Example:
salt myminion netbox.update_device edge_router serial=JN2932920
New in version 2019.2.0.
Update an existing interface with new attributes.
edge_router
ae13
mac_address=50:87:69:53:32:D0
CLI Example:
salt myminion netbox.update_interface edge_router ae13 mac_address=50:87:69:53:32:D0
© 2019 SaltStack.
Licensed under the Apache License, Version 2.0.
https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.netbox.html