Frequently Asked Questions
A diff always appears even if virtual machines are created. Why?
The
Top Level
DiffSync object is theCluster Group
which translates to a vSphereDataCenter
. A DataCenter can house manyClusters
. The problem happens when a Cluster created in Nautobot, does not belong to aClusterGroup
. If this is the case, they will never be registered into the common DiffSync model, thus appearing as a diff.
The expectations of hierarchy within Nautobot are graphed in a tree format below
ClusterGroup (DataCenter)
├── Cluster (Cluster)
│ └── VirtualMachine (VirtualMachine)
│ ├── VMInterface-1 (NIC Interface)
│ └── VMInterface-2 (NIC Interface)
└── Cluster-2 (Cluster)
└── VirtualMachine-2 (VirtualMachine)
└── VMInterface-1 (NIC Interface)
A configuration setting ENFORCE_CLUSTER_GROUP_TOP_LEVEL
is defaulted to true, enforcing this pattern. If you’d like to allow Clusters
to be the Top Level
, simply set this setting to False.
Measurements of Capacity (Disks)
The disk total is an aggregate of all virtual disks available on the virtual machine.
I use vSphere, but I don’t have any Clusters. I only have VM’s under hosts.
The plugin was built with vSphere environments that use Clusters within Datacenters. However, there is a way to change the default behavior to allow sync against vSphere environments that do not use Clusters. Changing DEFAULT_USE_CLUSTERS
to False in the Nautobot -> nautobot_ssot_vsphere
plugin config dictionary, as well as ENFORCE_CLUSTER_GROUP_TOP_LEVEL
to False. This will sync VM’s and their attributes only.
This is experimental. Also, the syncs may not behave as expected if these settings are changed once the sync has been completed with a different
Top Level
designation.
The sync behavior can be modified in several ways and the logic that enforces the diffsync Top Level
lives in adapters.shared.adapter_shared.py
if defaults.DEFAULT_USE_CLUSTERS:
if defaults.ENFORCE_CLUSTER_GROUP_TOP_LEVEL:
top_level = ["diffsync_clustergroup"]
else:
top_level = ["diffsync_cluster", "diffsync_clustergroup"]
else:
top_level = ["diffsync_virtual_machine"]
Is there a way to sync hosts
into Nautobot Device
model?
The information that is able to be retrieved from vSphere API is very limited in detail and would not be enough to satisfy creating a Device
object in Nautobot. I’m open to suggestion’s or PR’s to find a solution. This would require quite a bit of default settings if we were to try to fill in the gaps, which could simply pollute the data in Nautobot excessively.
Warning Error: {{ cluster_name }}, is missing association to a Cluster Group. Please correct to ensure proper sync. ENFORCE_CLUSTER_GROUP_TOP_LEVEL is enabled.
Diffsync Top Level can be manipulated via configuration options for the Plugin. If an existent Cluster is found in Nautobot during a sync job without association to the Cluster Group, the sync won’t update correctly. Either manually add the ClusterGroup to the Cluster in the UI, change the ENFORCE_CLUSTER_GROUP_TOP_LEVEL
to False
and use the Cluster
as the top level or as last resort, remove the Cluster from Nautobot and start a fresh sync from vSphere with this application.