NetBox plugin for vendor-agnostic configuration compliance
Validity is the NetBox plugin to write "auto tests" for configuration. You define compliance tests and Validity checks network device configuration files against these tests. As a result you can find out which devices are provisioned properly (according to the tests you have written) and which are not.
To use validity you need:
Store configuration files of your devices in a Git repository. Validity does not collect the configs from your network, you have to do it by third-party tool (e.g. oxidized).
Define TTP Template to translate the config from vendor specific format into JSON.
Write compliance test as a python expression, e.g.
device.config["ntp-servers"] == ["1.2.3.4", "5.6.7.8"]
Apply created test to specific devices and get the results per device (passed or failed).
Configuration compliance is one of the very common problems that arises in every company with the growth of their network. Usually companies solve this problem with some kind of scripts that do all the things at the same time: they parse configs, apply some compliance logic and push the results into some DB or third-party OSS system. Usually after the addition of several vendors (or even several software revisions of one model) these scripts become unreadable and almost no one can definitely say which rules the script checks for.
Validity completely separates compliance test code from all other things like config serialization. This one encourages you to write short, clean and understandable compliance tests together with the mandatory description.
You can download Validity via pip
pip install netbox-validity
After that follow the installation guide to correctly add Validity to your NetBox.
Read the full documentation on validity.readthedocs.io
A short video about first steps with Validity:
Feel free to ask a Question, report an Issue or even make a PR. Read more about contribution in the CONTRIBUTING guide.