Push rendered device configurations from NetBox to devices and apply them.
Project description
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 |
4.0 | =>2.6.0 |
4.1 | =>2.7.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
},
}
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).
Screenshots
Compliance finished with error
Render diff between configurations
No diff
Configuration request
Completed Configuration request
Credits
Based on the NetBox plugin tutorial:
This package was created with Cookiecutter and the netbox-community/cookiecutter-netbox-plugin
project template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file netbox_config_diff-2.8.0.tar.gz
.
File metadata
- Download URL: netbox_config_diff-2.8.0.tar.gz
- Upload date:
- Size: 838.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45aeceaecdcfdaed408688461ed36715585d4fcabdb0dc96396391741026bd91 |
|
MD5 | 022a8b26b0092750d55b208b1533db12 |
|
BLAKE2b-256 | 028feda3d930d982d70876f70edd268a7aebb7f4f5d6e0bb9dfc6041248ca666 |
File details
Details for the file netbox_config_diff-2.8.0-py3-none-any.whl
.
File metadata
- Download URL: netbox_config_diff-2.8.0-py3-none-any.whl
- Upload date:
- Size: 863.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d00d54506642815997b790b502d8e5e97f38e25b6408e4f8c920c8e795ba317 |
|
MD5 | 55525ac4f12c72ccb2394fffc045ebc3 |
|
BLAKE2b-256 | e56b1c9fc64c95c4c43ebff6cb4835cdb02c48dd3649425f7e77e357da8b65e1 |