Skip to content
This repository has been archived by the owner on Dec 1, 2023. It is now read-only.

Cisco ACI Single Source of Truth (SSoT) plugin for Nautobot

License

Notifications You must be signed in to change notification settings

nautobot/nautobot-plugin-ssot-aci

Repository files navigation

The code in this repository has been migrated to the Nautobot SSoT Repository as an integration - read more about it in the SSoT Docs! As of September 2023 this repository has been FROZEN - all development / issues / discussions for this integration are in the Nautobot SSoT Repository going forward.

Nautobot SSoT ACI - Nautobot plugin for synchronizing with Cisco ACI

Nautobot SSoT ACI is a plugin for Nautobot allowing synchronization of data from Cisco ACI into Nautobot.

This plugin is built on top of the Nautobot Single Source of Truth (SSoT) plugin. SSoT plugin enables Nautobot to be the aggregation point for data coming from multiple systems of record (SoR).

To accomplish the synchronization of data, the SSoT ACI plugin communicates with the Cisco ACI controller, the Application Policy Infrastructure Controller (APIC). The APIC provides a central point of administration for the ACI fabric via a web dashboard or REST API.

The SSoT ACI plugin eliminates the need for manually adding objects to Nautobot that have been automatically discovered by the Cisco APIC controller. This includes information such as device model/serial numbers, node management IP addressing, and more.

In addition any changes to the ACI fabric are reflected in Nautobot when the synchronization process is executed.

Examples of ACI changes synchronized into Nautobot:

  • New devices that were registered to the fabric are added to Nautobot.
  • Devices decommissioned from the fabric are removed from Nautobot.
  • Management IP addresses of devices added to the ACI fabric are created in Nautobot.
  • Subnets and gateway addresses of bridge domains created in ACI are added to Nautobot as prefixes and IP addresses.
  • Prefixes and IP addresses associated with removed ACI bridge domains are deleted from Nautobot.
  • ACI interface description additions and updates are carried over to interface descriptions in Nautobot.

The below list shows object types that are currently synchronized and how they map between systems.

ACI Nautobot
Tenant Tenant
Node (Leaf/Spine/Controller) Device
Model Device Type
Management IP address (Leaf/Spine/Controller) IP Address
Bridge Domain Subnet Prefix, IP Address
Interfaces Interface
VRFs VRFs

Documentation

Documentation is hosted on ReadTheDocs at Nautobot SSoT for Cisco ACI Documentation.

Screenshots

ACI Job Landing Page ACI Job Options Page ACI Job Post-Run Page ACI Synchronization Details Imported Device with ACI Attributes Imported IPs with ACI Attributes Imported Prefixes with ACI Attributes

Contributing

Pull requests are welcomed and automatically built and tested against multiple version of Python and multiple version of Nautobot through TravisCI.

The project is packaged with a light development environment based on docker-compose to help with the local development of the project and to run the tests within TravisCI.

The project is following Network to Code software development guideline and is leveraging:

  • Black, Pylint, Bandit and pydocstyle for Python linting and formatting.
  • Django unit test to ensure the plugin is working properly.

Questions

For any questions or comments, please check the FAQ first and feel free to swing by the Network to Code slack channel (channel #networktocode). Sign up here