Controllers¶
A Controller in Nautobot is an abstraction meant to represent network or SDN (Software-Defined Networking) controllers. These may include, but are not limited to, wireless controllers, cloud-based network management systems, and other forms of central network control mechanisms.
Key Features¶
- Flexible Modeling: Fits various network management scenarios, including SDN controllers, wireless controllers, and cloud-based services.
- Device Management: Allows for the representation of relationships between controllers and the devices or device groups they manage.
- Inventory Queries: Simplifies finding devices or groups managed by a specific controller, enhancing visibility and management.
Use Cases¶
These models support the representation of various use cases, including, but not limited to:
- Cisco ACI
- Panorama
- Juniper MIST
- Arista CloudVision
- Meraki
- Wireless Controllers (e.g., Ruckus, Cisco)
- OpenStack
Using controllers enables answering inventory-related queries:
Find the controller for the given device group:
controller_managed_device_group_name = "DC-East-APIC"
controller = ControllerManagedDeviceGroup.objects.get(name=controller_managed_device_group_name).controller
Find the controller for the given device:
device_name = "DC-East-APIC-1"
controller = Device.objects.get(name=device_name).controller_managed_device_group.controller
List device groups managed by the controller:
controller_name = "Cisco ACI APIC - east"
device_groups = ControllerManagedDeviceGroup.objects.filter(controller__name=controller_name)
device_groups.count()
List devices managed by the controller:
controller_name = "Cisco ACI APIC - east"
devices = Device.objects.filter(controller_managed_device_group__controller__name=controller_name)
devices.count()
Base Fields¶
A controller is identified by a unique name
and can include a description
.
Related Models¶
A controller can be deployed to either an individual Device or to a group of devices defined as a Device Redundancy Group via controller_device
or controller_device_redundancy_group
fields. These fields are mutually exclusive.
Each controller can also be connected to a Platform and a specific External Integration to define its connection to an external system.
A specific Status and Location are required for each controller.
For better organization and categorization, a Role, Tenant or tags can be assigned to the controller.
Controller Managed Device Group represents the connection between the controller and devices it manages. It allows for the organization of controlled devices into hierarchical groups for structured representation.
For more detailed information about model relations, please refer to the developer documentation.
Examples¶
Cisco ACI¶
name: Cisco ACI APIC - east
status: Active
controller_device: DC-East-APIC-1
location: DC-East
platform: cisco_apic