Linux shows up in two places in the lab: server workloads running as Ubuntu Server VMs on the Hyper-V host, and Pop!_OS as a desktop I actually use day to day. Between the two, most of my hands-on Linux time is in the terminal — SSH, systemd, and a bit of automation to keep it all patched.
Ubuntu Server workloads
The Ubuntu Server VMs handle specific jobs rather than being general-purpose boxes. apps-ubuntu-01 runs the TP-Link Omada wireless controller in Docker. web-ubuntu-01 runs nginx as a reverse proxy in front of it, so the controller is reachable over HTTPS at a clean internal hostname instead of an IP and a raw port.
Keeping servers updated with Ansible
Rather than SSHing into each VM individually to run updates, I use an Ansible script to patch the Linux servers consistently. It's a small thing, but it's the difference between "I'll get to it eventually" and actually staying current — one command touches every server instead of it depending on me remembering to log into each one.
SSH access
All the Linux servers are locked down to key-based SSH authentication — password login is disabled. It's a basic hardening step, but it's also just the right habit to build since it's exactly what's expected managing servers professionally.
Pop!_OS on the desktop
Alongside the servers, I run Pop!_OS as a daily-driver desktop — it keeps me comfortable in a Linux GUI environment, not just the server-side terminal, which rounds out the Linux side of the lab.
What's next
- Expand the Ansible playbook beyond patching — configuration management for the Docker/nginx setup
- Look at moving from ad hoc Ansible runs to a scheduled job