EDEdmund Dionisio

UPS provisioning workflow

Watt the Config

Provision APC network management cards without trusting a “success” message—preview, apply in a safe order, and read every setting back.

Lab-testedBuild v32NMC2 · NMC3 · SimulatorDesigned + built by Edmund Dionisio
01 / Problem

Two card generations, several transports, and no room for partial configuration.

Configuring APC UPS management cards in person meant walking to the hardware and navigating a slow menu for every device. It was time-consuming, repetitive, and easy to leave with one setting different from the intended standard. NMC2 and NMC3 also expose different command shapes, so remote automation had to understand both instead of assuming one happy path.

Watt makes success an evidence standard. It detects the device family, previews redacted commands, captures initial state, orders changes deliberately, and verifies each setting through the same engine used by its hardware-free simulator.

Trial-and-error lesson

A command returning without an error is not proof. I built the workflow around read-back verification and delayed the disruptive address change until the end so a partial run could not quietly look complete.

TransportSerial, SSH, and fake NMC through one interface
OrderSafe settings first; address change last
ProofPer-setting read-back before completion
02 / Architecture

The simulator is a transport, not a separate demo.

A shared provisioning engine talks to a transport contract. Real serial and SSH sessions implement that contract, while FakeTransport models NMC2 and NMC3 state for repeatable practice and regression testing.

Operator UI

Connection choice, target settings, redacted preview, typed confirmation, progress.

Provisioner

Identity, firmware detection, ordered steps, checks, transcript, and result model.

Transport

Serial / SSH / FakeTransport with the same send-and-receive contract.

NMC state

Apply command, query live value, compare expected state, report exact mismatch.

03 / Workflow

Detect, preview, apply, prove.

Choose a transport

Connect over serial or SSH, or select a simulated NMC2/NMC3 that touches no hardware.

Read identity and current state

Detect firmware and populate the operator's editable target form from known values.

Preview safely

Show the exact ordered command plan while registered secrets remain redacted.

Apply in dependency order

Configure services and accounts first; defer the disruptive address change to the final step.

Read back and monitor

Query each setting, report pass/fail, then monitor the new address for management reachability.

04 / Safety model

The command choke point protects the UPS load.

The golden constraint is simple: the tool configures the management card; it does not expose UPS load-control operations. Management-interface reboot is modeled separately from power control.

Blocked load commandsUnsafe power operations are rejected at the shared command guard.
Secret registryPasswords and generated values are registered with the redactor.
Redacted previewOperators see intent and order without exposing sensitive values.
Typed confirmationLive apply requires an explicit operator acknowledgement.
Address lastThe step most likely to end the session cannot interrupt earlier configuration.
Switch movement delayedPort normalization waits until the newly configured card is reachable.
05 / Decisions

Hardware variation stays behind stable boundaries.

01

Transport abstraction

Provisioning logic does not care whether bytes came from a serial cable, an SSH channel, or a deterministic fake device.

02

Generation-specific golden steps

NMC2 and NMC3 command differences are explicit and testable rather than scattered through UI branches.

03

Read-back over return code

A successful prompt or command response is not accepted as proof that the setting persisted.

Why this is the public demo candidate

FakeTransport exercises the real provisioning engine with synthetic state, so the full workflow can be demonstrated safely without network credentials, a serial adapter, or access to an employer environment.

06 / Lessons

Sequence is a safety control.

Provisioning is not a bag of independent commands. Identity, firmware, service configuration, accounts, addressing, management restart, reachability, and switch placement form a dependency graph. Making that order visible improved both reliability and operator confidence.

  • Production use requires authorized access and organization-approved configuration standards.
  • The simulator models supported behavior; it does not claim to reproduce every firmware defect.
  • UPS card configuration can be verified, but switch-port rollback is a separate workflow.