Skip to content

IPFabric SSoT Integration

SSoT IPFabric integration providing a simple way to synchronize data between IPFabric and Nautobot. Ensure data stays consistent between the two platforms by leveraging DiffSync capabilities and allowing users to take full advantage of both platforms with up-to-date, synchronized data.

Usage

You can navigate to the SSoT Dashboard with the following steps:

  1. Click the Plugins menu and select Dashboard under Single Source of Truth.

SSoT Dashboard Nav Menu

Now you should see the dashboard with information pertaining to IP Fabric.

SSoT Dashboard

We can see IP Fabric under Data Sources with some quick information such as the results of the latest synchronizations and the ability to launch the synchronization job.

On the right-hand side, we're provided with additional information such as the source, target, start time, status, and the type of job.

Let's go ahead and click on IP Fabric under Data Sources.

IPFabric Data Source

Now we can see additional details as to which IP Fabric host we're syncing from and the models that get mapped between the source and destination. We can also kick off sync job by clicking on Sync Now, but we will revisit that shortly.

Below, the sync history is provided with more details of what happened during each synchronization job.

IPFabric Sync History

Now back to running the job. Let's click on Sync Now.

Sync Run

There are several options available.

  • Debug: Enables more verbose logging that can be useful for troubleshooting synchronization issues.
  • Safe Delete Mode: Delete operations changes the object status to a predefined value (configurable via settings) and tags the object with SSoT Safe Delete Tag.
  • Sync Tagged Only: Only load Nautobot data into DiffSync adapters that has the SSoT Synced from IPFabric Tag.
  • Dry run: This will only report the difference between the source and destination without synchronization.
  • Site Filter: Filter the data loaded into DiffSync by a top level location of a specified Site.

If interested to see the source code, click on Source.

After a job is launched, you will be redirected to the job results page which will provide any logged messages during the synchronization.

If you're interested in more details, click SSoT Sync Details.

Job Results

You can then view the details of each object.

Sync Details

DiffSync Models

Currently, this integration will provide the ability to sync the following IP Fabric models into Nautobot.

  • Site ➡️ Nautobot Site
  • Device ➡️ Nautobot Device
  • Part Numbers ➡️ Nautobot Manufacturer/Device Type/Platform
  • Interfaces ➡️ Nautobot Device Interfaces
  • IP Addresses ➡️ Nautobot IP Addresses

IPFabric Site

IP Fabric (Source) DiffSync Model Nautobot (Destination)
siteName Location.name Site

IPFabric Device

IP Fabric (Source) DiffSync Model Nautobot (Destination)
hostname Device.name Device.name
siteName Device.location_name Device.site
vendor Device.vendor Device.manufacturer
model Device.model Device.device_type
sn Device.serial_number Device.serial

IPFabric Interface

IP Fabric (Source) DiffSync Model Nautobot (Destination)
intName Interface.name Interface.name
hostname Interface.device_name Interface.assigned_object
mac Interface.mac_address Interface.mac_address
mtu Interface.mtu Interface.mtu
N/A Interface.type Interface.type
primaryIp Interface.ip_address IPAddress.address
N/A Interface.subnet_mask IPAddress.address
N/A Interface.ip_is_primary Device.primary_ip

Note: Interfaces only support synchronizing 1 IP Address at the moment.

IPFabric VLAN

IP Fabric (Source) DiffSync Model Nautobot (Destination)
vlanName Vlan.name VLAN.name
vlanId Vlan.vid VLAN.vid
status Vlan.status VLAN.status
siteName Vlan.site VLAN.site

Safe Delete Mode

By design, a Nautobot SSoT app using DiffSync will Create, Update or Delete when synchronizing two data sources. However, this may not always be what we want to happen with our Source of Truth (Nautobot). A job configuration option is available and enabled by default to prevent deleting objects from the database and instead, update the Status of said object alongside assigning a default Tag, SSoT Safe Delete. For example, if an additional snapshot is created from IPFabric, synchronized with Nautobot and, it just so happens that a device was unreachable, down for maintenance, etc., This doesn't always mean that our Source of Truth should delete this object, but we may need to bring attention to this matter. We let you decide what should happen. One thing to note is that some of the objects will auto recover from the changed status if a new job shows the object is present. However, currently, IP addresses and Interfaces will not auto-update to remove the SSoT Safe Delete Tag. The user is responsible for reviewing and updating accordingly. Safe delete tagging of objects works in an idempotent way. If an object has been tagged already, the custom field defining the last update will not be updated with a new sync date from IPFabric. So, if you re-run your sync job days apart and, you'd expect the date to change, but the object has been flagged as safe to delete; you will not see an updated date on the object custom field unless the status changed, in which case the tag (depending on the object) would be removed followed by updating the last date of sync.

The default status change of an object were to be deleted by SSoT DiffSync operations, will be specified below. These are the default transitions states, unless otherwise specified in the configuration options of the integration by a user.

  • Device -> Offline (Auto deletes tag upon recovery)
  • IPAddresses -> Deprecated (Does not auto-delete tag upon recovery)
  • VLAN -> Deprecated (Auto deletes tag upon recovery)
  • Site -> Decommissioning (Auto deletes tag upon recovery)
  • Interfaces -> Tagged with SSoT Safe Delete (Does not auto-delete Tag upon recovery)

If you would like to change the default status change value, ensure you provide a valid status name available for the referenced object. Not all objects share the same Status.

Safe Delete

An example object that's been modified by SSoT App and tagged as SSoT Safe Delete and SSoT Synced from IPFabric. Notice the Status and child object, IPAddress has also changed to Deprecated and, it's status changed and tagged as well.

Safe Delete Address

During job execution, a warning will be provided to show the status change of an object.

Safe Delete Status Change

If an object has already been updated with the tag, a warning message will be displayed and the object will not be modified (including sync date).

Safe Delete Status Change

ChatOps

As part of the SSoT synchronization capabilities with IP Fabric, this integration extends the Nautobot ChatOps app by providing users with the ability to begin the sync job from a ChatOps command (Slack).

ssot-chatops-sync

Screenshots

Main SSoT IPFabric Dashboard:

Dashboard

Sync Details:

Dashboard