Data Center Modeler

Screenshot 1

I wrote this application at Stack41 to organize our network infrastructure and automatically generate switch configurations and server disk images. Noah Horton played a hand in reserving rack units and some logic to export configs. It is part of a collection of applications I wrote to automate data center administration.

It consists of a few panes. On the left is a tree-view of the network. There, one may declare physical infrastructure details like data centers, cabinets, and devices of different types. Each device comes with its own ports, as seen in the right pane. When ports are on the same switching plane (e.g. power, or ethernet, or serial) connections may be drawn. These connections are used by the program to generate configuration files appropriate for each device. It was designed with a plug-in architecture for different device descriptions, but coded originally for use with our Juniper/Proxmox gear.

Sample wiring

To the left is an example wiring diagram which can be modeled in DCIM. It shows power connections, 1G Ethernet, 10G Ethernet, and a patch interface between the cabinet and another cabinet. These graphs are very useful, and may be queried. The purpose of DCIM is to generate configurations for all modeled hardware and connections, from-scratch. The model may be exported from DCIM and used in other software. It was the intent to develop a monitoring service based on this (either active checking, or through syslog). Another feature was to be automatic wiring instructions for install staff when adding or modifying parts of the model. These parts have not yet come to fruition; perhaps someone could encourage me.

Data Center Modeler (DCIM) is released as GPL software, available here as a Python QT5 application. Stack41 has dismissed their copyright interest, so consider the version on this page a fork.

More Images

Screenshot 3 Screenshot 2
Go home