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 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 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 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.