A module type represents a specific make and model of hardware component which is installable within a device's module bay and has its own child components. For example, consider a chassis-based switch or router with a number of field-replaceable line cards. Each line card has its own model number and includes a certain set of components such as interfaces. Each module type may have a manufacturer, model number, and part number assigned to it.
Similar to device types, each module type can have any of the following component templates associated with it:
Note that device bays and module bays may not be added to modules.
When adding component templates to a module type, the string {module} can be used to reference the position field of the module bay into which an instance of the module type is being installed.
For example, you can create a module type with interface templates named Gi{module}/0/[1-48]. When a new module of this type is "installed" to a module bay with a position of "3", NetBox will automatically name these interfaces Gi3/0/[1-48].
Similarly, the string {vc_position} can be used in component template names to reference the
vc_position field of the device being provisioned, when that device is a member of a Virtual Chassis.
For example, an interface template named Gi{vc_position}/{module}/0 installed on a Virtual Chassis
member with position 2 and module bay position 3 will be rendered as Gi2/3/0.
If the device is not a member of a Virtual Chassis, {vc_position} defaults to 0. A custom
fallback value can be specified using the syntax {vc_position:X}, where X is the desired default.
For example, {vc_position:1} will render as 1 when no Virtual Chassis position is set.
Automatic renaming is supported for all modular component types (those listed above).
When using nested module bays (modules installed inside other modules), the {module} placeholder
can also be used in the position field of module bay templates to inherit the parent bay's
position. This allows a single module type to produce correctly named components at any nesting
depth, with a user-controlled separator.
For example, a line card module type might define sub-bay positions as {module}/1, {module}/2,
etc. When the line card is installed in a device bay with position 3, these sub-bay positions
resolve to 3/1, 3/2, etc. An SFP module type with interface template SFP {module} installed
in sub-bay 3/2 then produces interface SFP 3/2.
The separator between levels is defined by the user in the position field template itself. Using
{module}-1 produces positions like 3-1, while {module}.1 produces 3.1. This provides
full flexibility without requiring a global separator configuration.
!!! note
If the position field does not contain `{module}`, no inheritance occurs and behavior is
unchanged from previous versions.
The manufacturer which produces this type of module.
The model number assigned to this module type by its manufacturer. Must be unique to the manufacturer.
An alternative part number to uniquely identify the module type.
The numeric weight of the module, including a unit designation (e.g. 3 kilograms or 1 pound).
The direction in which air circulates through the device chassis for cooling.
The assigned profile for the type of module. Profiles can be used to classify module types by function (e.g. power supply, hard disk, etc.), and they support the addition of user-configurable attributes on module types. The assignment of a module type to a profile is optional.
Depending on the module type's assigned profile (if any), one or more user-defined attributes may be available to configure.