Nornir Validate Documentation

A Nornir plugin for validating network state (actual state) against YAML-based specifications (desired state). This project extends napalm-validate to perform command-based validation rather than relying solely on getters, providing greater flexibility in validating arbitrary command outputs. It leverages Nornir with nornir-netmiko to collect and format device data, then compares actual state against desired state to generate a compliance report.

How It Works

  1. Validation File: The expected desired state specified in YAML format (can be automatically generated) is provided at runtime

  2. Desired State: The validation file is rendered by Jinja adding validation commands to the desired state and storing this as a Nornir host variable

  3. Data Collection: Nornir (netmiko plugin) executes commands against target devices parsing the outputs through ntc-templates to construct the actual state

  4. Compliance Report: The desired state and actual state are fed into napalm-validate generating a compliance report of the differences

Compliance report animation

Example of a non-compliant and compliant report

Contents

  • Validations - A table of all the current supported validations and validation nuances

  • Tutorial - Contains all the information you require to get started with nornir-validate

  • Contribute - Runs through how to contribute new validation models to the project