2.3 KiB
NAPALM
NetBox supports integration with the NAPALM automation library. NAPALM allows NetBox to fetch live data from devices and return it to a requester via its REST API.
!!! info To enable the integration, the NAPALM library must be installed. See installation steps for more information.
GET /api/dcim/devices/1/napalm/?method=get_environment
{
"get_environment": {
...
}
}
Authentication
By default, the NAPALM_USERNAME
and NAPALM_PASSWORD
are used for NAPALM authentication. They can be overridden for an individual API call through the X-NAPALM-Username
and X-NAPALM-Password
headers.
$ curl "http://localhost/api/dcim/devices/1/napalm/?method=get_environment" \
-H "Authorization: Token f4b378553dacfcfd44c5a0b9ae49b57e29c552b5" \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
-H "X-NAPALM-Username: foo" \
-H "X-NAPALM-Password: bar"
Method Support
The list of supported NAPALM methods depends on the NAPALM driver configured for the platform of a device. NetBox only supports get methods.
Multiple Methods
More than one method in an API call can be invoked by adding multiple method
parameters. For example:
GET /api/dcim/devices/1/napalm/?method=get_ntp_servers&method=get_ntp_peers
{
"get_ntp_servers": {
...
},
"get_ntp_peers": {
...
}
}
Optional Arguments
The behavior of NAPALM drivers can be adjusted according to the optional arguments. NetBox exposes those arguments using headers prefixed with X-NAPALM-
.
For instance, the SSH port is changed to 2222 in this API call:
$ curl "http://localhost/api/dcim/devices/1/napalm/?method=get_environment" \
-H "Authorization: Token f4b378553dacfcfd44c5a0b9ae49b57e29c552b5" \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
-H "X-NAPALM-port: 2222"