Skip to content

Welcome to NAUTI

NAUTI (Network Automation Tools Integrator) is a CLI application that leverages an ecosystem of libraries built around asyncio that together can be used to support various network automation workflows.

The key features include:

  • Compare: The ability to compare network automation tools
  • Reconcile: NAUTI can be used to reconcile information between network automation tools
  • Diffs: Show differences between network automation tools

Quick Overview

Within this quick example the CLI can be used to sync devices from IPFabric (Network Discovery Tool) to Netbox (Network DCIM/IPAM).

The following command checks if there are any differences between the origin and target filtering out only one device. By default the command line nauti sync will run in dry-run mode.

$ nauti sync --origin ipfabric --target netbox --collection devices --origin-filter "hostname ~ b15"
2021-01-04 19:16:57,473 INFO: Fetching ipfabric/devices collection ...
2021-01-04 19:16:57,489 INFO: Fetched ipfabric/devices, fetched 1 records.
2021-01-04 19:16:57,489 INFO: Fetching netbox/devices collection ...
2021-01-04 19:16:58,690 INFO: Fetched netbox/devices, fetched 627 records.

Diff Report
   Add items: count 0
   Remove items: count 477
   Update items: count 1

You can show a more detailed output by adding the --diff-report/--dr command line argument.

$ nauti sync --origin ipfabric --target netbox --collection devices --origin-filter "hostname ~ b15" --diff-report upd
2021-01-04 19:20:44,276 INFO: Fetching ipfabric/devices collection ...
2021-01-04 19:20:44,300 INFO: Fetched ipfabric/devices, fetched 1 records.
2021-01-04 19:20:44,300 INFO: Fetching netbox/devices collection ...
2021-01-04 19:20:45,821 INFO: Fetched netbox/devices, fetched 627 records.

Diff Report
   Add items: count 0
   Remove items: count 477
   Update items: count 1


--------------------------------------------------------------------------------
Update Items: 1
--------------------------------------------------------------------------------

sn            hostname             ipaddr        site         os_name    vendor    model       status
------------  -------------------  ------------  -----------  ---------  --------  ----------  --------
BP1234567123  tor-mgmt-ex4200-b15  192.168.3.35  Axians--lab  junos      juniper   ex4200      active
              ex4200-b15                         Axians Lab                        ex4200-48t

Requirements

Python 3.8+

License

This project is licensed under the terms of the GNU General Public License v3.0.