portspec

Machine room

16U cabinet. Gateway, aggregation, two PoE switches, patch panels, 10G fabric, NAS, server, UPS.

Machine room, drawn from its YAML file

Devices

  • Access AUniFi Switch 24 Pro PoE Gen2
  • Access BUniFi Switch 48 Pro PoE Gen2
  • AggregationUniFi Switch Aggregation
  • ComputeServer, 2U
  • Storage fabricCRS317-1G-16S+RM
  • GatewayUniFi Dream Machine Pro
  • StorageRS1221+
  • Patch panel, 24 portsPatch panel, 24 ports
  • Patch panel, 48 portsPatch panel, 48 ports
  • BatteryUPS, 2U

YAML

network: 1
imports:
  - ../../catalog/index.network.yaml
cables:
  cat6-blue:   { extends: cat6, color: "#3689c9" }
  cat6-green:  { extends: cat6, color: "#41a282" }
  cat6-yellow: { extends: cat6, color: "#d9a520" }
  cat6-red:    { extends: cat6, color: "#c8504a" }
models:
  # The catalog's models, with faces drawn for this rack: lamps, fans and finishes.
  gateway:
    extends: ubiquiti/udm-pro
    faces:
      front:
        finish: white
        layout:
          - leds: [power, status]
          - label: "{name}"
          - grow
          - grid: { ports: port.1..8, rows: 2, order: odd-top, groups: 2 }
          - port.9
          - port.10..11
  aggregation:
    extends: ubiquiti/usw-aggregation
    faces:
      front:
        finish: white
        layout:
          - leds: [power]
          - label: "{name}"
          - grow
          - sfp+-1..8
  access-24:
    extends: ubiquiti/usw-pro-24-poe
    faces:
      front:
        finish: white
        layout:
          - leds: [power, status]
          - label: "{name}"
          - grow
          - grid: { ports: port-1..24, rows: 2, order: odd-top, groups: 3 }
          - sfp+-25..26
  access-48:
    extends: ubiquiti/usw-pro-48-poe
    faces:
      front: { finish: white }
  fabric:
    extends: mikrotik/crs317-1g-16s+rm
    faces:
      front:
        finish: black
        layout:
          - leds: [power, fault]
          - ether1
          - grid: { ports: sfp-sfpplus1..16, rows: 2, order: odd-top, groups: 2 }
          - grow
          - { primitive: fan, id: fan-a }
          - { primitive: fan, id: fan-b }
          - serial0
  storage:
    extends: synology/rs1221+
    faces:
      front:
        finish: black
        layout:
          - leds: [power, status, alert]
          - label: "{name}"
          - grow
          - { primitive: fan, id: fan-a }
          - { primitive: fan, id: fan-b }
          - grow
          - lan-1..4
          - serial
  compute:
    extends: server-2u
    faces:
      front:
        finish: stainless-steel
        layout:
          - leds: [power, disk, net]
          - label: "{name}"
          - grow
          - { primitive: fan, id: fan-a }
          - { primitive: fan, id: fan-b }
          - { primitive: fan, id: fan-c }
          - { primitive: fan, id: fan-d }
          - grow
  battery:
    extends: ups-2u
    faces:
      front:
        finish: black
        layout:
          - leds: [online, battery, fault]
          - label: "{name}"
          - grow
          - { primitive: fan, id: fan-a }
racks:
  cabinet:
    type: rack-cabinet
    door: none
    units: 16
    panels:
      brush-12: { u: 12, type: brush }
      vent-7:   { u: 7, type: vent }
devices:
  gateway:  { model: gateway, name: Gateway, in: cabinet, u: 16, ports: { "port.11": { module: sfp+-lc-10g } } }
  agg:      { model: aggregation, name: Aggregation, in: cabinet, u: 15, ports: { "sfp+-1": { module: sfp+-lc-10g }, "sfp+-2": { module: sfp+-lc-10g }, "sfp+-3": { module: sfp+-lc-10g }, "sfp+-4": { module: sfp+-lc-10g } } }
  access-a: { model: access-24, name: Access A, in: cabinet, u: 14, ports: { "sfp+-25": { module: sfp+-lc-10g } } }
  panel-a:  { model: patch-panel-24, in: cabinet, u: 13 }
  access-b: { model: access-48, name: Access B, in: cabinet, u: 11, ports: { "sfp+-49": { module: sfp+-lc-10g } } }
  panel-b:  { model: patch-panel-48, in: cabinet, u: 9 }
  core:     { model: fabric, name: Storage fabric, in: cabinet, u: 8, ports: { "sfp-sfpplus1": { module: sfp+-lc-10g } } }
  nas:      { model: storage, name: Storage, in: cabinet, u: 5 }
  compute:  { model: compute, name: Compute, in: cabinet, u: 3 }
  ups:      { model: battery, name: Battery, in: cabinet, u: 1 }
links:
  up-a:   { ends: [gateway/port.11, agg/sfp+-1], cable: lc-duplex }
  agg-a:  { ends: [agg/sfp+-2, access-a/sfp+-25], cable: lc-duplex }
  agg-b:  { ends: [agg/sfp+-3, access-b/sfp+-49], cable: lc-duplex }
  agg-c:  { ends: [agg/sfp+-4, core/sfp-sfpplus1], cable: lc-duplex }
  a-1:    { ends: [access-a/port-1, panel-a/1], cable: cat6-blue }
  a-2:    { ends: [access-a/port-3, panel-a/3], cable: cat6-blue }
  a-3:    { ends: [access-a/port-6, panel-a/6], cable: cat6-blue }
  a-4:    { ends: [access-a/port-10, panel-a/10], cable: cat6-green }
  a-5:    { ends: [access-a/port-18, panel-a/18], cable: cat6-green }
  b-1:    { ends: [access-b/port-2, panel-b/2], cable: cat6-yellow }
  b-2:    { ends: [access-b/port-9, panel-b/9], cable: cat6-yellow }
  b-3:    { ends: [access-b/port-20, panel-b/20], cable: cat6 }
  b-4:    { ends: [access-b/port-31, panel-b/31], cable: cat6 }
  nas-1:  { ends: [access-a/port-23, nas/lan-1], cable: cat6-red }
  nas-2:  { ends: [access-a/port-24, nas/lan-2], cable: cat6-red }
scenes:
  front: { title: Machine room, layout: [cabinet] }