Category Archives: Home Lab

The Home Lab

New NUC Based Home Lab

Inspired by the folks at the London VMUG, I finally got round to starting on a proper home-lab for the bits of hands-on IT learning that I can’t do with a Virtual Machine on my laptop, VMware Hands on Labs and the like. I’ve based this around the 6th Generation Intel NUC (“Next Unit of Computing”) platform. Hopefully this balances my requirements of budget, computing power, electric usage, and noise output (this is a HOME lab after all). I want the platform to be flexible, being able to run different hypervisors, operating systems, and applications depending on what I want to experiment with at the time.

Components

  • Intel 6th Generation NUC NUC6i5SYH barebones system
  • Samsung 250GB 850 EVO M.2 SSD
  • 2x8GB DDR4 SODIMM
  • 60GB 2.5in SSD (Recycled from an old laptop)

Components

The Components of the Server


Construction
The NUC is a small but very solidly built piece of kit. The lid pops off by undoing four captive screws in the feet (awesome idea this- you’re not going to lose the screws if they stay attached!) revealing the insides.
NUC Insides

Inside the 6th Generation NUC


All the necessary slots are easily accessible so it was straightforward to fit the SSDs and memory- the only additional tool required was a smaller screwdriver to work the M.2 retaining screw. With the parts fitted the case slotted neatly back together and the four screws in the feet were tightened, the task took only a couple of minutes to complete.
The M.2 retaining screw

The M.2 retaining screw

Next Up: Installing the ESXi Hypervisor on a 6th Generation Intel NUC


Advert:
The Home Lab

Installing ESXi on the NUC

Welcome to Part 2 of my Home Lab series (it’s now twice as long!) where I install the Hypervisor. The 6th Generation Intel NUC hardware is all assembled and working, so now it’s time to put some software into the mix.
I’ve chosen to start with VMware vSphere ESXi 6- the VMware Hypervisor is the one I’m most hands-on with at work at the moment so high in my learning priorities. Whilst waiting for the hardware to be delivered I did some background reading (thanks in particular to Florian at Virten.net) and got myself prepared with a downloaded copy of the vSphere Hypervisor (version 6, update1, 201601001-3380124 release) deployed to a bootable USB stick using the Rufus tool.
Everything seemed to be going smoothly, the USB stick went into the NUC, booted first time, got into the installer and then…… PSOD.

PSOD

Pink/Purple Screen of Death. Not Good.


Checking up the error on the VMware Knowledgebase pointed me to a corrupt source. I tried re-downloading the ISO, tried a slightly different release. Nada. The PSOD kept appearing. Then I scanned the USB stick for bad sectors, it found lots.


I started again with a new USB stick and quickly got past the point where it had been falling over. The ESXi installation actually made it through to the “Welcome” message.

Welcome Message

Welcome to the Installer


The installation from this point is primarily a case of pressing Enter to Continue- the important step was selecting an install location. I chose the USB (the same one I had the source data on)- that way I’m not using the built in drives and it leaves me the option of swapping out the hypervisor in the future. The installation continued, I entered a root password, and once the installer had completed the box rebooted.
Selecting an install drive

Selecting to install the hypervisor to the USB stick


Following the reboot everything was good to go. The box picked up an IP address from my home network and was visible to the vSphere Client on my laptop, all that was left was to configure the storage and network and then I would be all set to install a guest operating system or two. Or three. Or four……
vSphere Client

vSphere Client connected to the new HomeLab Hypervisor.

The Home Lab

Home Lab VPN Connection

I wanted to be able to connect to my new home lab from off-premises (that’s a technical way of saying “when I’m not at home”). My solution to this was to setup an Ubuntu VM running OpenVPN, following the comprehensive instructions here and configuring my home broadband router to forward UDP port 1194 to the VM.

Whilst this looked great, when I got offsite and tried to connect back in I couldn’t get to my ESXi host. Connections to the VM hosting the VPN were fine; I could connect and then ping/SSH the VM (and I was also routing SSH to that VM on my home router- that also worked) but anything beyond that- the rest of my home network- was inaccessible.

After some digging, this post pointed me to the probable solution. The Virtual Switch that sat in ESX between the router and the VPN server was set by default to reject promiscuous packets, so packets being sent to the VPN for it to route were never reaching the VM.

Enabling Promiscuous Mode on a vSwitch

Enabling Promiscuous Mode on a vSwitch

So, armed with a possible solution I set about trying to fix it remotely. I can’t open the vSphere client to enable promiscuous mode because the VPN isn’t letting me through. The physical host is now sitting headless at home, and I’m not, so I can’t sit in front of the console. Luckily (and thanks to a colleague for reminding me this) I had that SSH routing enabled, I can turn off the VPN and fall back on an SSH tunnel to make the connection using Putty on my off-site workstation.

So next I tried a normal SSH tunnel to port 443 on the ESXi host. This didn’t work beyond the web browser, and a bit more digging suggested I needed ports 902 and 903 as well. Not a problem, PuTTY lets us port forward several ports simultaneously. However, that was still unsuccessful- if I tried to connect to 127.0.0.1 from the vSphere Client on my Windows laptop it failed.

PuTTY Configuration- SSH Tunnelling

PuTTY Configuration- SSH Tunnelling

More digging (it’s one of those days where I don’t know where I’d be without Google) and I found this post by Anthony Eden. It turns out that I need to put an entry in my local hosts file on Windows pointing at 127.0.0.1. This worked, bizarrely, and I could now open up the vSphere Client and connect to my home lab.

Next step was to set that promiscuous mode on the vSwitch, this is a straightforward operation and whilst it does open up VM traffic across that switch to certain vulnerabilities, it solved the problem and I’m not planning on running a major finance appliance storing lots of personal data on this rig anyway, and I’m anticipating most applications I try will be separated by further switching as well.

With the VPN running I can now connect to both the ESXi host itself and any Virtual Machines within the environment.

So, setting up the VPN on my Home Lab was not quite as straightforward as I’d originally hoped, but I got there in the end. I can now sit in the office at lunchtime and call this my infrastructure in the cloud. To summarise for anyone trying to do the same thing.

  1. Create an Ubuntu Linux VM with a static (or reserved) IP Address
  2. Install OpenVPN following the instructions here
  3. On the vSwitch attached to the VM enable promiscuous mode
  4. On your broadband router forward port 1194 to the IP address of the VM
  5. Install the OpenVPN client on your laptop, go off-premises, and test.
The Home Lab

Home Lab Upgrade to 6.0u2

VMware have released vSphere 6.0 Update 2 – this brings with it many new features, but amongst the most exciting for my home lab was the host-based web client. I no longer need to rely on the functionality of the traditional Windows application to manage my virtual environment. Here’s how I installed it:

  1. Download the Update file “ESXi Offline Bundle” update-from-esxi6.0-6.0_update02.zip from here.
  2. Continue reading

The Home Lab

Virtual Machine Backups with Veeam

So, I’ve got my HomeLab on a NUC setup and running the VMware ESXi 6 Hypervisor. Before I get too carried away “experimenting” I want to be a good sysadmin and ensure that I can backup (and restore) my Virtual Machines. Even though on the whole they are test/dev environments there is still plenty of work going into them that I either don’t want to lose during that endeavour, or want to archive and possibly return to at another time. I’ve chosen to start with the Veeam Backup Free Edition v9. This powerful yet free tool offers the ability to archive an entire VM into a single compressed “VeeamZIP” file and restore the VM (or individual files from the Guest OS) to the same hypervisor or a different location. Continue reading