Before/after — NetBox inventory hygiene

Projects · Write-up

Summary: Spreadsheets do not refuse a bad edit. This write-up moves device and IP truth into NetBox so change history and roles stay queryable.

Step 1 — Name the mess

Addressing, device roles, and “what changed last week” lived in ad-hoc notes and spreadsheets. That works until two people edit different copies, or a change window needs a reliable before-state.

The break is quiet: nobody notices the sheet is stale until the window is already open. Spreadsheets do not refuse a contradictory edit; NetBox at least keeps a change log.

Step 2 — Pick the spine

Treat NetBox as source of truth: sites → racks/devices → interfaces → IP assignments. Prefer updating NetBox before the window, not after.

Label honesty: the day-job pattern (single inventory source, change history) is transferable. The public companion script and any lab captures are lab — not production metrics or customer names.

fig-step-2 — screenshot pending — Build; blur secrets

Intended: NetBox site / rack tree with private hostnames and IPs blurred. Filename plan: step-2-netbox-spine-build.png.

Step 2 — Inventory spine in NetBox (Build capture pending; sensitive fields will be blurred).

Step 3 — Model before the window

Before a change, the objects that matter should already exist: device role, interfaces, and IP assignments. The point is not ceremony — it is having a queryable before-state instead of reconstructing one from email.

Before: spreadsheet columns for hostname, role, VLAN “somewhere”; history = email threads.
After: device + IP objects in NetBox; change log in-tool.

fig-step-3 — screenshot pending — Agent Console / Build; blur secrets

Intended: device list with role and status columns; private addressing cropped or blurred. Filename plan: step-3-netbox-devices-console.png.

Step 3 — Device list after scrub (placeholder until Console/Build capture; blur secrets).

Step 4 — Prove with a lab script

Keep a small custom-script stub in lab for hygiene reports (counts, missing roles) without shipping employer data. The stub proves the pattern; it does not claim production expertise.

git clone https://www.portfolio.btcbrewery.com/git/netbox-custom-script-stub.git

Lab only: point it at a scrubbed NetBox instance (https://netbox.example.lab), never at a production URL in public notes.

fig-step-4 — screenshot pending — Build; blur secrets

Intended: stub script output / report panel with counts only. Filename plan: step-4-netbox-script-build.png.

Step 4 — Lab script hygiene report (Build capture pending; no real inventory).

Step 5 — Close the loop

Inventory questions answer from one place. Spreadsheets can still exist as exports; they stop being the spine.

Outcome

One inventory source for lab, and the same transferable pattern at work — fewer “which sheet is current?” moments. The public companion remains a lab NetBox custom-script stub.

Clone

git clone https://www.portfolio.btcbrewery.com/git/netbox-custom-script-stub.git

Format reference: Docs standard.

What I would do differently

Gate the window on “NetBox objects updated” the same way you gate on a checklist — refuse the change if the spine is still a spreadsheet. Also: ask Console/Build for real captures sooner so placeholders do not linger.

Lab + transferable · NetBox (IPAM/DCIM) · screenshots pending Console/Build