netbox-community / devicetype-library

A collection of community-sourced DeviceType definitions for import to NetBox
Creative Commons Zero v1.0 Universal
923 stars 925 forks source link
hacktoberfest netbox

NetBox Device Type Library

About this Library

This library is intended to be used for populating device types in NetBox. It contains a set of device type definitions expressed in YAML and arranged by manufacturer. Each file represents a discrete physical device type (e.g. make and model). These definitions can be loaded into NetBox instead of creating new device type definitions manually.

If you would like to contribute to this library, please read through our contributing guide before submitting content.

Note: As of March 2023 Netbox-Device-Type-Library-Import has been brought into the NetBox Community Organization. We will work to get this fully supported soon. If you would like to automate the import of these devicetype template files, there is a NetBox Community community based python script that will check for duplicates, allow you to selectively import vendors, etc. available here netbox-community/Device-Type-Library-Import. Note: This is not related to NetBox in any official way and you will not get support for it here.

Device Type Definitions

Each definition must include at minimum the following fields:

:test_tube: Example:

  manufacturer: Dell
  model: PowerEdge R6515
  slug: dell-poweredge-r6515

The following fields may optionally be declared:

For further detail on these attributes and those listed below, please reference the schema definitions and the Component Definitions below.

Component Definitions

Valid component types are listed below. Each type of component must declare a list of the individual component templates to be added.

The available fields for each type of component are listed below.

Console Ports

Documentation

A console port provides connectivity to the physical console of a device. These are typically used for temporary access by someone who is physically near the device, or for remote out-of-band access provided via a networked console server.

Console Server Ports

Documentation

A console server is a device which provides remote access to the local consoles of connected devices. They are typically used to provide remote out-of-band access to network devices, and generally connect to console ports.

Power Ports

Documentation

A power port is a device component which draws power from some external source (e.g. an upstream power outlet), and generally represents a power supply internal to a device.

Power Outlets

Documentation

Power outlets represent the outlets on a power distribution unit (PDU) or other device that supplies power to dependent devices. Each power port may be assigned a physical type, and may be associated with a specific feed leg (where three-phase power is used) and/or a specific upstream power port. This association can be used to model the distribution of power within a device.

Interfaces

Documentation

Interfaces in NetBox represent network interfaces used to exchange data with connected devices. On modern networks, these are most commonly Ethernet, but other types are supported as well. IP addresses and VLANs can be assigned to interfaces.

Front Ports

Documentation

Front ports are pass-through ports which represent physical cable connections that comprise part of a longer path. For example, the ports on the front face of a UTP patch panel would be modeled in NetBox as front ports. Each port is assigned a physical type, and must be mapped to a specific rear port on the same device. A single rear port may be mapped to multiple front ports, using numeric positions to annotate the specific alignment of each.

Rear Ports

Documentation

Like front ports, rear ports are pass-through ports which represent the continuation of a path from one cable to the next. Each rear port is defined with its physical type and a number of positions: Rear ports with more than one position can be mapped to multiple front ports. This can be useful for modeling instances where multiple paths share a common cable (for example, six discrete two-strand fiber connections sharing a 12-strand MPO cable).

Module Bays

Documentation

Module bays represent a space or slot within a device in which a field-replaceable module may be installed. A common example is that of a chassis-based switch such as the Cisco Nexus 9000 or Juniper EX9200. Modules in turn hold additional components that become available to the parent device.

Device Bays

Documentation

Device bays represent a space or slot within a parent device in which a child device may be installed. For example, a 2U parent chassis might house four individual blade servers. The chassis would appear in the rack elevation as a 2U device with four device bays, and each server within it would be defined as a 0U device installed in one of the device bays. Child devices do not appear within rack elevations or count as consuming rack units.

Child devices are first-class Devices in their own right: That is, they are fully independent managed entities which don't share any control plane with the parent. Just like normal devices, child devices have their own platform (OS), role, tags, and components. LAG interfaces may not group interfaces belonging to different child devices.

Inventory Items

Documentation

Inventory items represent hardware components installed within a device, such as a power supply or CPU or line card. They are intended to be used primarily for inventory purposes.

Inventory items are hierarchical in nature, such that any individual item may be designated as the parent for other items. For example, an inventory item might be created to represent a line card which houses several SFP optics, each of which exists as a child item within the device. An inventory item may also be associated with a specific component within the same device. For example, you may wish to associate a transceiver with an interface.

Data Validation / Commit Quality Checks

There are two ways this repo focuses on keeping quality device-type definitions: