portspec

Server rack

42U cabinet. Two 25G top-of-rack switches and a management switch patched through panels to thirteen servers at the rear; three UPS.

Server rack, drawn from its YAML file

Devices

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" }
racks:
  cabinet:
    type: rack-cabinet
    door: none
    units: 42
    panels:
      brush-39: { u: 39, type: brush }
      brush-36: { u: 36, type: brush }
      vent-21:  { u: 21, type: vent }
      blank-9:  { u: 9, type: blank, units: 4 }
devices:
  tor-a: { model: mikrotik/crs518-16xs-2xq-rm, name: Top of rack A, in: cabinet, u: 42, ports: { qsfp28-1-1: { module: qsfp28-lc-100g }, sfp28-1: { module: sfp+-lc-10g }, sfp28-2: { module: sfp+-lc-10g }, sfp28-3: { module: sfp+-lc-10g }, sfp28-4: { module: sfp+-lc-10g }, sfp28-5: { module: sfp+-lc-10g }, sfp28-6: { module: sfp+-lc-10g }, sfp28-7: { module: sfp28-lc-25g }, sfp28-8: { module: sfp28-lc-25g }, sfp28-9: { module: sfp28-lc-25g }, sfp28-10: { module: sfp28-lc-25g }, sfp28-11: { module: sfp+-lc-10g }, sfp28-12: { module: sfp+-lc-10g } } }
  tor-b: { model: mikrotik/crs518-16xs-2xq-rm, name: Top of rack B, in: cabinet, u: 41, ports: { qsfp28-1-1: { module: qsfp28-lc-100g }, sfp28-1: { module: sfp28-lc-25g }, sfp28-2: { module: sfp28-lc-25g }, sfp28-3: { module: sfp28-lc-25g }, sfp28-4: { module: sfp28-lc-25g }, sfp28-5: { module: sfp+-lc-10g }, sfp28-6: { module: sfp+-lc-10g }, sfp28-7: { module: sfp28-lc-25g } } }
  mgmt: { model: mikrotik/crs354-48g-4s+2q+rm, name: Management, in: cabinet, u: 40 }
  fibre: { model: fibre-panel-lc-24, in: cabinet, u: 38 }
  copper: { model: feedthrough-panel-24, in: cabinet, u: 37 }
  web-1: { model: server-1u-10g, name: Web 1, in: cabinet, u: 35, ports: { sfp1: { module: sfp+-lc-10g } } }
  web-2: { model: server-1u-10g, name: Web 2, in: cabinet, u: 34, ports: { sfp1: { module: sfp+-lc-10g } } }
  web-3: { model: server-1u-10g, name: Web 3, in: cabinet, u: 33, ports: { sfp1: { module: sfp+-lc-10g } } }
  web-4: { model: server-1u-10g, name: Web 4, in: cabinet, u: 32, ports: { sfp1: { module: sfp+-lc-10g } } }
  web-5: { model: server-1u-10g, name: Web 5, in: cabinet, u: 31, ports: { sfp1: { module: sfp+-lc-10g } } }
  web-6: { model: server-1u-10g, name: Web 6, in: cabinet, u: 30, ports: { sfp1: { module: sfp+-lc-10g } } }
  vm-1: { model: server-2u-24sff, name: Hypervisor 1, in: cabinet, u: 28, ports: { sfp28-1: { module: sfp28-lc-25g }, sfp28-2: { module: sfp28-lc-25g } } }
  vm-2: { model: server-2u-24sff, name: Hypervisor 2, in: cabinet, u: 26, ports: { sfp28-1: { module: sfp28-lc-25g }, sfp28-2: { module: sfp28-lc-25g } } }
  vm-3: { model: server-2u-24sff, name: Hypervisor 3, in: cabinet, u: 24, ports: { sfp28-1: { module: sfp28-lc-25g }, sfp28-2: { module: sfp28-lc-25g } } }
  vm-4: { model: server-2u-24sff, name: Hypervisor 4, in: cabinet, u: 22, ports: { sfp28-1: { module: sfp28-lc-25g }, sfp28-2: { module: sfp28-lc-25g } } }
  store-1: { model: server-2u-8lff, name: Storage 1, in: cabinet, u: 19, ports: { sfp1: { module: sfp+-lc-10g }, sfp2: { module: sfp+-lc-10g } } }
  store-2: { model: server-2u-8lff, name: Storage 2, in: cabinet, u: 17, ports: { sfp1: { module: sfp+-lc-10g }, sfp2: { module: sfp+-lc-10g } } }
  backup: { model: server-4u-36lff, name: Backup, in: cabinet, u: 13, ports: { sfp28-1: { module: sfp28-lc-25g } } }
  pdu-a: { model: pdu-8, in: cabinet, u: 8 }
  pdu-b: { model: pdu-8, in: cabinet, u: 7 }
  ups-a: { model: ups-2u, in: cabinet, u: 5 }
  ups-b: { model: ups-2u, in: cabinet, u: 3 }
  ups-c: { model: ups-2u, in: cabinet, u: 1 }
links:
  peer: { ends: [tor-a/qsfp28-1-1, tor-b/qsfp28-1-1], cable: lc-duplex }
  web-1: { ends: [web-1/sfp1, fibre/r1], cable: lc-duplex }
  a-1: { ends: [tor-a/sfp28-1, fibre/1], cable: lc-duplex }
  web-1-bmc: { ends: [web-1/bmc, copper/r1], cable: cat6-blue }
  mgmt-1: { ends: [mgmt/ether1, copper/1], cable: cat6-blue }
  web-2: { ends: [web-2/sfp1, fibre/r2], cable: lc-duplex }
  a-2: { ends: [tor-a/sfp28-2, fibre/2], cable: lc-duplex }
  web-2-bmc: { ends: [web-2/bmc, copper/r2], cable: cat6-blue }
  mgmt-2: { ends: [mgmt/ether2, copper/2], cable: cat6-blue }
  web-3: { ends: [web-3/sfp1, fibre/r3], cable: lc-duplex }
  a-3: { ends: [tor-a/sfp28-3, fibre/3], cable: lc-duplex }
  web-3-bmc: { ends: [web-3/bmc, copper/r3], cable: cat6-blue }
  mgmt-3: { ends: [mgmt/ether3, copper/3], cable: cat6-blue }
  web-4: { ends: [web-4/sfp1, fibre/r4], cable: lc-duplex }
  a-4: { ends: [tor-a/sfp28-4, fibre/4], cable: lc-duplex }
  web-4-bmc: { ends: [web-4/bmc, copper/r4], cable: cat6-blue }
  mgmt-4: { ends: [mgmt/ether4, copper/4], cable: cat6-blue }
  web-5: { ends: [web-5/sfp1, fibre/r5], cable: lc-duplex }
  a-5: { ends: [tor-a/sfp28-5, fibre/5], cable: lc-duplex }
  web-5-bmc: { ends: [web-5/bmc, copper/r5], cable: cat6-blue }
  mgmt-5: { ends: [mgmt/ether5, copper/5], cable: cat6-blue }
  web-6: { ends: [web-6/sfp1, fibre/r6], cable: lc-duplex }
  a-6: { ends: [tor-a/sfp28-6, fibre/6], cable: lc-duplex }
  web-6-bmc: { ends: [web-6/bmc, copper/r6], cable: cat6-blue }
  mgmt-6: { ends: [mgmt/ether6, copper/6], cable: cat6-blue }
  vm-1-a: { ends: [vm-1/sfp28-1, fibre/r7], cable: lc-duplex }
  vm-1-b: { ends: [vm-1/sfp28-2, fibre/r8], cable: lc-duplex }
  a-7: { ends: [tor-a/sfp28-7, fibre/7], cable: lc-duplex }
  b-1: { ends: [tor-b/sfp28-1, fibre/8], cable: lc-duplex }
  vm-1-bmc: { ends: [vm-1/bmc, copper/r7], cable: cat6-blue }
  mgmt-7: { ends: [mgmt/ether7, copper/7], cable: cat6-blue }
  vm-2-a: { ends: [vm-2/sfp28-1, fibre/r9], cable: lc-duplex }
  vm-2-b: { ends: [vm-2/sfp28-2, fibre/r10], cable: lc-duplex }
  a-8: { ends: [tor-a/sfp28-8, fibre/9], cable: lc-duplex }
  b-2: { ends: [tor-b/sfp28-2, fibre/10], cable: lc-duplex }
  vm-2-bmc: { ends: [vm-2/bmc, copper/r8], cable: cat6-blue }
  mgmt-8: { ends: [mgmt/ether8, copper/8], cable: cat6-blue }
  vm-3-a: { ends: [vm-3/sfp28-1, fibre/r11], cable: lc-duplex }
  vm-3-b: { ends: [vm-3/sfp28-2, fibre/r12], cable: lc-duplex }
  a-9: { ends: [tor-a/sfp28-9, fibre/11], cable: lc-duplex }
  b-3: { ends: [tor-b/sfp28-3, fibre/12], cable: lc-duplex }
  vm-3-bmc: { ends: [vm-3/bmc, copper/r9], cable: cat6-blue }
  mgmt-9: { ends: [mgmt/ether9, copper/9], cable: cat6-blue }
  vm-4-a: { ends: [vm-4/sfp28-1, fibre/r13], cable: lc-duplex }
  vm-4-b: { ends: [vm-4/sfp28-2, fibre/r14], cable: lc-duplex }
  a-10: { ends: [tor-a/sfp28-10, fibre/13], cable: lc-duplex }
  b-4: { ends: [tor-b/sfp28-4, fibre/14], cable: lc-duplex }
  vm-4-bmc: { ends: [vm-4/bmc, copper/r10], cable: cat6-blue }
  mgmt-10: { ends: [mgmt/ether10, copper/10], cable: cat6-blue }
  store-1-a: { ends: [store-1/sfp1, fibre/r15], cable: lc-duplex }
  store-1-b: { ends: [store-1/sfp2, fibre/r16], cable: lc-duplex }
  a-11: { ends: [tor-a/sfp28-11, fibre/15], cable: lc-duplex }
  b-5: { ends: [tor-b/sfp28-5, fibre/16], cable: lc-duplex }
  store-1-bmc: { ends: [store-1/bmc, copper/r11], cable: cat6-blue }
  mgmt-11: { ends: [mgmt/ether11, copper/11], cable: cat6-blue }
  store-2-a: { ends: [store-2/sfp1, fibre/r17], cable: lc-duplex }
  store-2-b: { ends: [store-2/sfp2, fibre/r18], cable: lc-duplex }
  a-12: { ends: [tor-a/sfp28-12, fibre/17], cable: lc-duplex }
  b-6: { ends: [tor-b/sfp28-6, fibre/18], cable: lc-duplex }
  store-2-bmc: { ends: [store-2/bmc, copper/r12], cable: cat6-blue }
  mgmt-12: { ends: [mgmt/ether12, copper/12], cable: cat6-blue }
  backup: { ends: [backup/sfp28-1, fibre/r19], cable: lc-duplex }
  b-7: { ends: [tor-b/sfp28-7, fibre/19], cable: lc-duplex }
  backup-bmc: { ends: [backup/bmc, copper/r13], cable: cat6-blue }
  mgmt-13: { ends: [mgmt/ether13, copper/13], cable: cat6-blue }
scenes:
  front: { title: Server rack, layout: [cabinet] }
  rear: { title: "Server rack, rear", layout: [cabinet], view: rear }