diff --git a/docs/configuration/napalm.md b/docs/configuration/napalm.md index 253bea297..e9fc91b72 100644 --- a/docs/configuration/napalm.md +++ b/docs/configuration/napalm.md @@ -1,5 +1,7 @@ # NAPALM Parameters +!!! **Note:** As of NetBox v3.5, NAPALM integration has been moved to a plugin and these configuration parameters are now deprecated. + ## NAPALM_USERNAME ## NAPALM_PASSWORD diff --git a/docs/features/api-integration.md b/docs/features/api-integration.md index 50c31ec4f..c3b78de47 100644 --- a/docs/features/api-integration.md +++ b/docs/features/api-integration.md @@ -36,6 +36,8 @@ To learn more about this feature, check out the [webhooks documentation](../inte To learn more about this feature, check out the [NAPALM documentation](../integrations/napalm.md). +As of NetBox v3.5, NAPALM integration has been moved to a plugin. Please see the [netbox_napalm_plugin](https://github.com/netbox-community/netbox-napalm) for installation instructions. + ## Prometheus Metrics NetBox includes a special `/metrics` view which exposes metrics for a [Prometheus](https://prometheus.io/) scraper, powered by the open source [django-prometheus](https://github.com/korfuri/django-prometheus) library. To learn more about this feature, check out the [Prometheus metrics documentation](../integrations/prometheus-metrics.md). diff --git a/docs/installation/3-netbox.md b/docs/installation/3-netbox.md index 26a2bf917..dc6c38977 100644 --- a/docs/installation/3-netbox.md +++ b/docs/installation/3-netbox.md @@ -199,14 +199,6 @@ When you have finished modifying the configuration, remember to save the file. All Python packages required by NetBox are listed in `requirements.txt` and will be installed automatically. NetBox also supports some optional packages. If desired, these packages must be listed in `local_requirements.txt` within the NetBox root directory. -### NAPALM - -Integration with the [NAPALM automation](../integrations/napalm.md) library allows NetBox to fetch live data from devices and return it to a requester via its REST API. The `NAPALM_USERNAME` and `NAPALM_PASSWORD` configuration parameters define the credentials to be used when connecting to a device. - -```no-highlight -sudo sh -c "echo 'napalm' >> /opt/netbox/local_requirements.txt" -``` - ### Remote File Storage By default, NetBox will use the local filesystem to store uploaded files. To use a remote filesystem, install the [`django-storages`](https://django-storages.readthedocs.io/en/stable/) library and configure your [desired storage backend](../configuration/system.md#storage_backend) in `configuration.py`. diff --git a/docs/integrations/napalm.md b/docs/integrations/napalm.md index 60d8014e2..e7e0f108c 100644 --- a/docs/integrations/napalm.md +++ b/docs/integrations/napalm.md @@ -1,74 +1,3 @@ # NAPALM -NetBox supports integration with the [NAPALM automation](https://github.com/napalm-automation/napalm) library. NAPALM allows NetBox to serve a proxy for operational data, fetching live data from network devices and returning it to a requester via its REST API. Note that NetBox does not store any NAPALM data locally. - -The NetBox UI will display tabs for status, LLDP neighbors, and configuration under the device view if the following conditions are met: - -* Device status is "Active" -* A primary IP has been assigned to the device -* A platform with a NAPALM driver has been assigned -* The authenticated user has the `dcim.napalm_read_device` permission - -!!! note - To enable this integration, the NAPALM library must be installed. See [installation steps](../../installation/3-netbox/#napalm) for more information. - -Below is an example REST API request and response: - -```no-highlight -GET /api/dcim/devices/1/napalm/?method=get_environment - -{ - "get_environment": { - ... - } -} -``` - -!!! note - To make NAPALM requests via the NetBox REST API, a NetBox user must have assigned a permission granting the `napalm_read` action for the device object type. - -## Authentication - -By default, the [`NAPALM_USERNAME`](../configuration/napalm.md#napalm_username) and [`NAPALM_PASSWORD`](../configuration/napalm.md#napalm_password) configuration parameters are used for NAPALM authentication. They can be overridden for an individual API call by specifying the `X-NAPALM-Username` and `X-NAPALM-Password` headers. - -``` -$ curl "http://localhost/api/dcim/devices/1/napalm/?method=get_environment" \ --H "Authorization: Token $TOKEN" \ --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](https://napalm.readthedocs.io/en/latest/support/index.html#general-support-matrix) configured for the platform of a device. Because there is no granular mechanism in place for limiting potentially disruptive requests, NetBox supports only read-only [get](https://napalm.readthedocs.io/en/latest/support/index.html#getters-support-matrix) methods. - -## Multiple Methods - -It is possible to request the output of multiple NAPALM methods in a single API request by passing multiple `method` parameters. For example: - -```no-highlight -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](https://napalm.readthedocs.io/en/latest/support/index.html#optional-arguments). NetBox exposes those arguments using headers prefixed with `X-NAPALM-`. For example, 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 $TOKEN" \ --H "Content-Type: application/json" \ --H "Accept: application/json; indent=4" \ --H "X-NAPALM-port: 2222" -``` +As of NetBox v3.5, NAPALM integration has been moved to a plugin. Please see the [netbox_napalm_plugin](https://github.com/netbox-community/netbox-napalm) for installation instructions. **Note:** All previously entered NAPALM configuration data will be saved and automatically imported by the new plugin.