Skip to main content

Recently Updated Pages

Lessons on the baseline

Ubuntu VM Baseline & Tuning

Tune to the role, not dogmatically. Swap off for k8s nodes, on (small) elsewhere. BBR where it f...

Updated 3 months ago by Eslam Shapsough

What's in the baseline

Ubuntu VM Baseline & Tuning

The recurring adjustments, and the reasoning for each: Swap — present and small on the general V...

Updated 3 months ago by Eslam Shapsough

Why a baseline at all

Ubuntu VM Baseline & Tuning

Every VM in the lab gets the same small set of OS-level adjustments before it does any real work....

Updated 3 months ago by Eslam Shapsough

The template

Golden-Image VM Provisioning

The template is one VM (ID 9999) prepared once: a current Ubuntu cloud image, the QEMU guest agen...

Updated 3 months ago by Eslam Shapsough

Why golden images

Golden-Image VM Provisioning

There are ~15 VMs in this lab. Not one of them was installed from an ISO by hand. Every single on...

Updated 3 months ago by Eslam Shapsough

Lessons on provisioning

Golden-Image VM Provisioning

One golden image, cloned many times. Consistency first; it kills "works on that box" bugs. Bake ...

Updated 3 months ago by Eslam Shapsough

Grow-on-first-boot, and a clean teardown

Golden-Image VM Provisioning

Two finishing touches make the recipe pleasant to live with. Disks grow to fit. The template's di...

Updated 3 months ago by Eslam Shapsough

Injecting per-VM identity with cloud-init

Golden-Image VM Provisioning

Cloning gives you fifteen identical machines. Cloud-init is what makes each one itself on first b...

Updated 3 months ago by Eslam Shapsough

Lessons on bastion access

The SSH Bastion (Jump Host)

One way in. Internal VMs expose no SSH to the internet; the bastion is the single public SSH end...

Updated 3 months ago by Eslam Shapsough

Hardening, and a host-key surprise

The SSH Bastion (Jump Host)

Because the bastion is the one publicly-reachable SSH endpoint, it's the one that gets the most a...

Updated 3 months ago by Eslam Shapsough

The ProxyJump pattern

The SSH Bastion (Jump Host)

You don't want to manually SSH to the bastion and then SSH again — that's clumsy and breaks tooli...

Updated 3 months ago by Eslam Shapsough

Why a jump host

The SSH Bastion (Jump Host)

None of the internal VMs accept SSH from the internet. There's exactly one machine you can SSH to...

Updated 3 months ago by Eslam Shapsough

A gotcha that cost an afternoon

Edge Networking with pfSense

A war story, because the lessons that stick are the ones that bit you. A backend's address was ch...

Updated 3 months ago by Eslam Shapsough

TLS terminates here, once

Edge Networking with pfSense

There is exactly one place in the whole lab that deals with certificates: HAProxy on pfSense. It ...

Updated 3 months ago by Eslam Shapsough

HAProxy: one door, many rooms

Edge Networking with pfSense

All the web services share a single public IP, so something has to look at each incoming request ...

Updated 3 months ago by Eslam Shapsough

NAT: how private VMs reach the world

Edge Networking with pfSense

The VMs live on a private range that isn't routable on the internet. They still need to fetch pac...

Updated 3 months ago by Eslam Shapsough

The front door

Edge Networking with pfSense

Everything that's reachable from the outside world passes through one VM: a pfSense firewall/rout...

Updated 3 months ago by Eslam Shapsough

Architecture & Prerequisites

Building a 3-Node Proxmox Cluster on He...

Diagram

Updated 3 months ago by Eslam Shapsough

Lessons learned & gotchas

Building a 3-Node Proxmox Cluster on He...

MTU is the one that will haunt you. A vSwitch with VXLAN encapsulation adds overhead to every fr...

Updated 3 months ago by Eslam Shapsough

Why we designed it this way

Building a 3-Node Proxmox Cluster on He...

The cluster makes a few structural choices on purpose: Two vSwitches, not one. One private (clus...

Updated 3 months ago by Eslam Shapsough