Skip to main content

NetBox version Supported Versions PyPI version Ruff License CI

NetBox Config Diff Plugin

NetBox plugin for Config Diff.

  • Find diff between the rendered configuration for a device to its actual configuration, retrieved from the device itself, or stored in DataSource.
  • Push the rendered configuration from NetBox to a device and apply it.

Documentation: https://miaow2.github.io/netbox-config-diff/

About

Collecting diffs

With this plugin you can find diff between the rendered configuration for a device to its actual configuration, retrieved from the device itself, or stored in DataSource. Read about DataSources for further details.

Device configuration renders natively in NetBox. This feature was introduced in 3.5 version. NetBox Labs blog post about it.

Plugin supports a wide list of vendors (Cisco, Juniper, Huawei, MicroTik etc.) with the help of Scrapli. Read Scrapli and scrapli-community documentations to find full list of vendors.

Pushing configuration

Also you can push rendered configuration from NetBox to device and apply it.

Supported platforms:

  • arista_eos
  • cisco_iosxe
  • cisco_iosxr
  • cisco_nxos
  • juniper_junos

This is possible thanks to the scrapli_cfg. Read Scrapli documentation for more info.

Compatibility

NetBox Version Plugin Version
3.5 =>0.1.0, <=2.5.0
3.6 =>0.1.0, <=2.6.0
3.7 =>0.1.0, <=2.8.0
4.0 =>2.6.0, <=2.9.0
4.1 =>2.7.0, <=2.12.0
4.2 =>2.9.0, <=2.12.0
4.3 =>2.10.0, <=2.12.0
4.4 =>2.11.0, <=2.13.0
4.5 =>2.14.0
4.6 =>2.15.0
4.7 =>2.16.0

Installing

For adding to a NetBox Docker setup see the general instructions for using netbox-docker with plugins.

Install with pip:

pip install netbox-config-diff

Add to local_requirements.txt:

echo netbox-config-diff >> local_requirements.txt

Enable the plugin in /opt/netbox/netbox/netbox/configuration.py, or if you use netbox-docker, your /configuration/plugins.py file, and define credentials for devices connection:

PLUGINS = [
    "netbox_config_diff",
]

PLUGINS_CONFIG = {
    "netbox_config_diff": {
        "USERNAME": "foo",
        "PASSWORD": "bar",
        "AUTH_SECONDARY": "foobar",  # define here password for accessing Privileged EXEC mode, this variable is optional
        "PATH_TO_SSH_CONFIG_FILE": "/home/.ssh/config",  # define here PATH to SSH config file, it will be used for device connections, this variable is optional
    },
}

Run database migrations:

python manage.py migrate

Collect static from the plugin:

python manage.py collectstatic --noinput

Restart NetBox service:

systemctl restart netbox netbox-rq

Usage

Read this doc about collecting diffs, for configuration management read this

Video

My presention about plugin at October NetBox community call (19.10.2023, plugin version 2.0.0).

October NetBox community call

Screenshots

Compliance finished with error

Screenshot of the compliance error

Render diff between configurations

Screenshot of diff

No diff

Screenshot of the compliance ok

Configuration request

Screenshot of the CR

Completed Configuration request

Screenshot of the completed CR

Credits

Based on the NetBox plugin tutorial:

This package was created with Cookiecutter and the netbox-community/cookiecutter-netbox-plugin project template.

Metadata

Release files for netbox-config-diff 2.16.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for netbox-config-diff 2.16.0
File Size Uploaded
netbox_config_diff-2.16.0.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for netbox-config-diff 2.16.0
File Interpreter ABI Platform
netbox_config_diff-2.16.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.0 MB

Release files / netbox_config_diff-2.16.0.tar.gz

Download URL netbox_config_diff-2.16.0.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
87dfb89559b30b7a494d5a7e9266d6c28e9c84c06f87628c1b7a892c3a281f19
BLAKE2b-256 checksum
How to use checksums
265515b946e30c955bac890e00474a6edabb6b8f1ab5a085fca4839cc8fa2dff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.21

Release files / netbox_config_diff-2.16.0-py3-none-any.whl

Download URL netbox_config_diff-2.16.0-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4cb85f095f2ec268a4d6de6df22057cb75801c059428c1ec200198012748ac8a
BLAKE2b-256 checksum
How to use checksums
c96beec3eee2000091d05961e66e1c435a8cfeb10d02b5b1b7e071690f20f719
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.21

Release history Release notifications | RSS feed

This release

2.16.0 This release

2 release files

2.15.2

2 release files

2.15.1

2 release files

2.15.0

2 release files

2.14.3

2 release files

2.14.2

2 release files

2.14.1

2 release files

2.14.0

2 release files

2.13.1

2 release files

2.11.0

2 release files

2.10.0

2 release files

2.9.0

2 release files

2.8.0

2 release files

2.7.0

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page