corrections from Jonathon: Unimus and NetBox were different jobs on different infrastructure, so NetBox comes out of the network project entirely; the Google migration was off GCP and Google Workspace onto Windows AD, Microsoft 365 and Azure; the ERP refresh included daily COBOL green-screen work; contact line kept in one place
build-and-deploy / build (push) Failing after 11m10s
build-and-deploy / build (push) Failing after 11m10s
This commit is contained in:
@@ -38,11 +38,10 @@ const emailHref = socials.find((s) => s.label === "Email")?.href;
|
|||||||
<span class="term__sep">·</span> reconciled by <span class="term__val">Argo CD</span>
|
<span class="term__sep">·</span> reconciled by <span class="term__val">Argo CD</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="term__line"><span class="term__prompt">$</span> contact --priority low-ms</p>
|
<p class="term__line"><span class="term__prompt">$</span> contact</p>
|
||||||
<p class="term__out">
|
<p class="term__out">
|
||||||
ping me on{" "}
|
|
||||||
<a href={linkedinHref} rel="noopener noreferrer" target="_blank">LinkedIn</a>{" "}
|
<a href={linkedinHref} rel="noopener noreferrer" target="_blank">LinkedIn</a>{" "}
|
||||||
or <a href={emailHref}>email</a> - everything else is best-effort delivery.
|
or <a href={emailHref}>email</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="term__line" aria-hidden="true">
|
<p class="term__line" aria-hidden="true">
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
---
|
---
|
||||||
title: "Network Automation at Fleet Scale"
|
title: "Network Automation at Fleet Scale"
|
||||||
outcome: "Took a multi-region switch fleet from hand-managed to single-pane - automated config backup, bulk change in minutes, and credentials secured and rotated."
|
outcome: "Took a multi-region switch fleet from hand-managed to single-pane - automated config backup, bulk change in minutes, and credentials secured and rotated."
|
||||||
summary: "Productionised a vendor-agnostic network config-management platform (Unimus) with NetBox as the source-of-truth across an AU/NZ/PNG switch fleet: scheduled config backups, mass config push, and a centrally vaulted, rotated credential model - community tooling stood up ground-up under a corporate-supported licence."
|
summary: "Productionised a vendor-agnostic network config-management platform (Unimus) across an AU/NZ/PNG switch fleet: scheduled config backups, change diffs, mass config push, and a centrally vaulted, rotated credential model - community tooling stood up ground-up under a corporate-supported licence."
|
||||||
role: "Global IT Infrastructure Engineer · Linde Asia Pacific"
|
role: "Global IT Infrastructure Engineer · Linde Asia Pacific"
|
||||||
period: "2019 - 2022"
|
period: "2019 - 2022"
|
||||||
stack: ["Unimus (NCM)", "NetBox (IPAM / SoT)", "Config backup & DR", "Bulk config push", "Credential vaulting + rotation", "Multi-vendor switching"]
|
stack: ["Unimus (NCM)", "Config backup + restore", "Config diffs", "Bulk config push", "Credential vaulting + rotation", "Multi-vendor switching"]
|
||||||
featured: false
|
featured: false
|
||||||
order: 45
|
order: 45
|
||||||
cover: "network-automation-fleet"
|
cover: "network-automation-fleet"
|
||||||
@@ -12,8 +12,6 @@ diagram: "network-fleet"
|
|||||||
links:
|
links:
|
||||||
- label: "Unimus"
|
- label: "Unimus"
|
||||||
href: "https://unimus.net"
|
href: "https://unimus.net"
|
||||||
- label: "NetBox"
|
|
||||||
href: "https://netbox.dev"
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Problem
|
## Problem
|
||||||
@@ -38,11 +36,9 @@ backup scheduling, and change workflows. It gave the fleet three things it never
|
|||||||
place: **automated, scheduled config backups**, **change tracking with config diffs**, and
|
place: **automated, scheduled config backups**, **change tracking with config diffs**, and
|
||||||
**mass / bulk config push** across many devices at once.
|
**mass / bulk config push** across many devices at once.
|
||||||
|
|
||||||
Paired with it, **NetBox** served as the **IPAM and source-of-truth** for the device
|
It is a lean, community-rooted tool, adopted under a **corporate-supported licence** so it had
|
||||||
inventory the automation runs against - so the fleet is driven from a single, accurate model
|
a support path and could pass an enterprise change process - the deciding constraint, since an
|
||||||
of what exists rather than tribal knowledge. Both are lean, community-rooted tools adopted
|
unsupported tool would not have been approved to hold the fleet's credentials.
|
||||||
under a **corporate-supported licence**, which made them viable inside an enterprise change
|
|
||||||
process, under a corporate-supported licence so the tool had a support path.
|
|
||||||
|
|
||||||
## Security & reliability decisions
|
## Security & reliability decisions
|
||||||
|
|
||||||
@@ -50,18 +46,17 @@ process, under a corporate-supported licence so the tool had a support path.
|
|||||||
scoped, rotated place, never embedded in scripts or shared by hand.
|
scoped, rotated place, never embedded in scripts or shared by hand.
|
||||||
- **Known-good config backups** - a recovery path for device configuration. Full network DR also depends on replacement hardware, firmware and console access, which sit outside this platform.
|
- **Known-good config backups** - a recovery path for device configuration. Full network DR also depends on replacement hardware, firmware and console access, which sit outside this platform.
|
||||||
- **Diffs + auditing** - configuration changes are visible and attributable, and the stored known-good config is the material you roll back from. Changes that cut management access or touch firmware still need console/physical access.
|
- **Diffs + auditing** - configuration changes are visible and attributable, and the stored known-good config is the material you roll back from. Changes that cut management access or touch firmware still need console/physical access.
|
||||||
- **Source-of-truth driven** - NetBox holds the authoritative device and address model the automation is run against.
|
- **One inventory to act on** - the device list the automation runs against lives in one place rather than in per-engineer spreadsheets.
|
||||||
<!-- TODO(Jonathon): confirm whether NetBox programmatically drove Unimus device inventory, or whether the two were complementary but not coupled. Wording is deliberately non-committal until confirmed. -->
|
|
||||||
|
|
||||||
## Outcome
|
## Outcome
|
||||||
|
|
||||||
The switch fleet across AU/NZ/PNG was maintained from a single pane: configs backed up
|
The switch fleet across AU/NZ/PNG was maintained from a single pane: configs backed up
|
||||||
automatically, bulk changes pushed in minutes instead of days, credentials secured and
|
automatically, bulk changes pushed in minutes instead of days, credentials secured and
|
||||||
rotated, and - for the first time - a genuine recovery path for network configuration. A lean
|
rotated, and a known-good configuration on file for every device - the material a restore
|
||||||
community toolset, productionised with enterprise rigour.
|
starts from, where previously there was none.
|
||||||
|
|
||||||
## Future improvements
|
## Future improvements
|
||||||
|
|
||||||
Drive the automation deeper from the source-of-truth - intent in NetBox, pushed to the fleet
|
Drive the fleet from an external source-of-truth (an IPAM/DCIM system feeding device intent
|
||||||
through Unimus - and template standard site configs so a new location onboards straight from
|
into Unimus) and template standard site configs so a new location onboards from the inventory
|
||||||
the inventory.
|
rather than by hand.
|
||||||
|
|||||||
@@ -44,8 +44,8 @@ export const experience: Role[] = [
|
|||||||
"Maintained and modernised global infrastructure to enterprise standards across the region.",
|
"Maintained and modernised global infrastructure to enterprise standards across the region.",
|
||||||
highlights: [
|
highlights: [
|
||||||
"Global VMware / Dell hosting; PowerShell automation of manual project tasks",
|
"Global VMware / Dell hosting; PowerShell automation of manual project tasks",
|
||||||
"Migrated Google Business → Microsoft 365 across the region; AWS-hosted ERP access",
|
"Migrated company infrastructure off Google Cloud and Google Workspace to Microsoft: Linux domain controllers replaced with Windows Active Directory, users onto Microsoft 365 and Azure; AWS-hosted ERP access",
|
||||||
"ERP hardware refresh with new mainframe and DR solution; PBX → VoIP across AU/NZ",
|
"ERP hardware refresh onto new mainframe plus DR solution - including daily COBOL green-screen operations; PBX → VoIP across AU/NZ",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user