Home labs are the bread and butter for any IT professional who wants to take their technical skills to the next level. Whether it is practicing setting up an Active Directory environment or detonating malware to discover hidden functionality, home labs are the vehicle to drive your journey. Home labs are what gyms are to bodybuilders, a place to exercise one’s ability and grow. That said, like most bodybuilders, most home lab users cannot go out and buy all the expensive equipment you find in enterprise environments or commercial gyms. However, unlike bodybuilders, we home lab users can buy one moderately expensive server and virtualize all our needs.
Virtualization is “the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms, storage devices, and computer network resources” (Wikipedia). It makes our lives easier because we can put a ton of stuff into one physical box. In fact, we can set up entire environments compromised of multiple assets (e.g. firewalls, Windows/Linux machines, servers, etc.). There are two ways to virtualize all the things, either on your host (desktop) computer through a type II hypervisor like VMware Workstation or VirtualBox (the method I’d recommend if you’re just getting started) or on a server through a type I hypervisors like VMware vCenter or Proxmox. I chose to go with a type I (Proxmox) which meant installing the hypervisor on a dedicated server/workstation. This is typically what enterprises do but with much more powerful and expensive servers.
Proxmox is an “open-source server management platform for enterprise virtualization” and is probably the best “free” visualization platform able with its tight KVM hypervisor and Linux Containers (LXC) integration, as well as a built-in web-based user interface for intuitive management. To get to grips with the installation and management of Proxmox I’d highly recommend watching LearnLinuxTV’s YouTube course. I won’t walk through the installation process in this article, it’s pretty basic and there are lots of resources on it, however, I will describe a philosophy I adopted for organizing virtual machine (VM) deployments and resources within Proxmox.
Be one with everything
A philosophy I have come to adopt when managing my Proxmox environments is one pool = one bridge = one network = one environment (inspired by this Medium…