From e35aa4bd1e479690a3ca23ec40d7ee897eaeee8a Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Mon, 20 Dec 2021 10:31:18 -0500 Subject: [PATCH] Add documentation for modules --- docs/core-functionality/device-types.md | 1 + docs/core-functionality/devices.md | 1 + docs/core-functionality/modules.md | 4 ++++ docs/models/dcim/devicebay.md | 2 +- docs/models/dcim/devicebaytemplate.md | 2 +- docs/models/dcim/module.md | 5 +++++ docs/models/dcim/modulebay.md | 3 +++ docs/models/dcim/modulebaytemplate.md | 3 +++ docs/models/dcim/moduletype.md | 23 +++++++++++++++++++++++ mkdocs.yml | 1 + 10 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 docs/core-functionality/modules.md create mode 100644 docs/models/dcim/module.md create mode 100644 docs/models/dcim/modulebay.md create mode 100644 docs/models/dcim/modulebaytemplate.md create mode 100644 docs/models/dcim/moduletype.md diff --git a/docs/core-functionality/device-types.md b/docs/core-functionality/device-types.md index 037d3cfd0..ec5cbacdb 100644 --- a/docs/core-functionality/device-types.md +++ b/docs/core-functionality/device-types.md @@ -37,4 +37,5 @@ Once component templates have been created, every new device that you create as {!models/dcim/interfacetemplate.md!} {!models/dcim/frontporttemplate.md!} {!models/dcim/rearporttemplate.md!} +{!models/dcim/modulebaytemplate.md!} {!models/dcim/devicebaytemplate.md!} diff --git a/docs/core-functionality/devices.md b/docs/core-functionality/devices.md index 982ee3071..35c978210 100644 --- a/docs/core-functionality/devices.md +++ b/docs/core-functionality/devices.md @@ -17,6 +17,7 @@ Device components represent discrete objects within a device which are used to t {!models/dcim/interface.md!} {!models/dcim/frontport.md!} {!models/dcim/rearport.md!} +{!models/dcim/modulebay.md!} {!models/dcim/devicebay.md!} {!models/dcim/inventoryitem.md!} diff --git a/docs/core-functionality/modules.md b/docs/core-functionality/modules.md new file mode 100644 index 000000000..4d32fe18c --- /dev/null +++ b/docs/core-functionality/modules.md @@ -0,0 +1,4 @@ +# Modules + +{!models/dcim/moduletype.md!} +{!models/dcim/module.md!} diff --git a/docs/models/dcim/devicebay.md b/docs/models/dcim/devicebay.md index 2aea14a7a..e79c426dc 100644 --- a/docs/models/dcim/devicebay.md +++ b/docs/models/dcim/devicebay.md @@ -5,4 +5,4 @@ Device bays represent a space or slot within a parent device in which a child de 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. !!! note - Device bays are **not** suitable for modeling line cards (such as those commonly found in chassis-based routers and switches), as these components depend on the control plane of the parent device to operate. Instead, line cards and similarly non-autonomous hardware should be modeled as inventory items within a device, with any associated interfaces or other components assigned directly to the device. + Device bays are **not** suitable for modeling line cards (such as those commonly found in chassis-based routers and switches), as these components depend on the control plane of the parent device to operate. Instead, these should be modeled as modules installed within module bays. diff --git a/docs/models/dcim/devicebaytemplate.md b/docs/models/dcim/devicebaytemplate.md index ebf7bd63c..a4c50067a 100644 --- a/docs/models/dcim/devicebaytemplate.md +++ b/docs/models/dcim/devicebaytemplate.md @@ -1,3 +1,3 @@ ## Device Bay Templates -A template for a device bay that will be created on all instantiations of the parent device type. +A template for a device bay that will be created on all instantiations of the parent device type. Device bays hold child devices, such as blade servers. diff --git a/docs/models/dcim/module.md b/docs/models/dcim/module.md new file mode 100644 index 000000000..bc9753ecc --- /dev/null +++ b/docs/models/dcim/module.md @@ -0,0 +1,5 @@ +# Modules + +A module is a field-replaceable hardware component installed within a device which houses its own child components. The most common example is a chassis-based router or switch. + +Similar to devices, modules are instantiated from module types, and any components associated with the module type are automatically instantiated on the new model. Each module must be installed within a module bay on a device, and each module bay may have only one module installed in it. A module may optionally be assigned a serial number and asset tag. diff --git a/docs/models/dcim/modulebay.md b/docs/models/dcim/modulebay.md new file mode 100644 index 000000000..6c6f94598 --- /dev/null +++ b/docs/models/dcim/modulebay.md @@ -0,0 +1,3 @@ +## Module Bays + +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. diff --git a/docs/models/dcim/modulebaytemplate.md b/docs/models/dcim/modulebaytemplate.md new file mode 100644 index 000000000..463789305 --- /dev/null +++ b/docs/models/dcim/modulebaytemplate.md @@ -0,0 +1,3 @@ +## Module Bay Templates + +A template for a module bay that will be created on all instantiations of the parent device type. Module bays hold installed modules that do not have an independent management plane, such as line cards. diff --git a/docs/models/dcim/moduletype.md b/docs/models/dcim/moduletype.md new file mode 100644 index 000000000..c1c8c5079 --- /dev/null +++ b/docs/models/dcim/moduletype.md @@ -0,0 +1,23 @@ +# Module Types + +A module type represent a specific make and model of hardware component which is installable within a device 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: + +* Interfaces +* Console ports +* Console server ports +* Power ports +* Power Outlets +* Front pass-through ports +* Rear pass-through ports + +Note that device bays and module bays may _not_ be added to modules. + +## Automatic Component Renaming + +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]`. + +Automatic renaming is supported for all modular component types (those listed above). diff --git a/mkdocs.yml b/mkdocs.yml index 3fb838ffd..f89bdaea7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -59,6 +59,7 @@ nav: - Sites and Racks: 'core-functionality/sites-and-racks.md' - Devices and Cabling: 'core-functionality/devices.md' - Device Types: 'core-functionality/device-types.md' + - Modules: 'core-functionality/modules.md' - Virtualization: 'core-functionality/virtualization.md' - Service Mapping: 'core-functionality/services.md' - Circuits: 'core-functionality/circuits.md'