After being asked about my home lab a few times I thought I would document the configuration and the deployment method. This is not a “must” guide and many of the steps and the Lab build can be improved or changed to better fit your situation, budget and lab requirements.
I do a large amount of system building as a hobby, so I was confident in taking on the build of a home server myself.
Home Server Spec
The specification above is a guide, components are not always available or the price of the component changes based on demand. So this may be changed to what you need. This worked for me but may not work for your use case. This will generate heat as well. I found in my home office I had to turn the heating off as the server was more than enough to heat the room for me.
VCF Deployment
I use a tool called VLC. This is a tool created by some of the tech marketing team. They use this to deploy VCF in two ways.
- Fully automated way with DNS and other components deployed by repurposing the cloud builder appliance to run these components.
- Partly automated way with DNS and external components being part of the environment already.
Option 1 is what I use all the time. Option 2 works well if the environment is an existing fully deployed environment. As an example, I have seen some home labs that are integrated into a home system running many smart home components. This already has DHCP, DNS, NTP and AD so these can be used if needed. For me this option was not possible as I segregate everything in the home away from my plan.
You can download VLC here https://docs.google.com/forms/d/e/1FAIpQLScU_X8LpdC6FHpANGBkdY87GoBkuuWcIiVh7dalFqJQJAOLpw/viewform
Deployment guide based on VLC_4.4-021022
Item | Details |
---|---|
Make sure all pre-reqs are configured. These are documented in the VLC Guide as well. | ESXi host with vCenter – Using VSSSet the vSwitch to MTU = 9000On the vSwitch, create a portgroup for VCF. On the port group (not the switch) set the following VLAN ID and security settings: • VLAN ID = 4095 • Promiscuous Mode = Accept • Allow Forged Transmits = Accept • Allow MAC Address Changes = Accept |
Build a Jump server as a VM on the host to be running VLC. The VM must have the following installed. | Windows 10/2016/2019 (Older versions are not supported) • Powershell 5.1+ • PowerCLI 12.1+ • OVFTool 4.4+ • .Net Framework • Two VMXNET3 NICs o MTU 1500 |
The Jump host must have two NICs. | Attached one NIC to your local LAN Network so you can RDP to it.- Attach the second NIC to the VCF port group created in Step 1 and configure it with the IP 10.0.0.220. Set the DNS on the second NIC to 10.0.0.221. The 10.0.0.221 address will be the address assigned to the Cloud Builder appliance, by default. VLC will modify the Cloud Builder appliance so that it provides specific services, like DNS, for the nested environment. Thus, using this IP for DNS will allow you to access the nested VCF environment when using the default configuration file in Automated mode |
Add the VLAN to the second NIC | This second NIC will also need to be configured to use the VLAN of your management network, in the default Automated VLC configuration this is VLAN 10 |
Disable Windows Firewall and Windows Defender | Disable Windows Firewall. Turn off Windows Defender Real-time Scanning. Note: this has a habit of resetting after reboots of the Windows VM. |
The software needed for the deployment is as follows. This should be deployed onto the Jump VM. | Download the VCF Software (Cloud Builder OVA) into this folder. (C: VLC)• Putty – or your favorite SSH tool • Notepad++ – or your favorite text editor • WinSCP – for easy file transfers |
Deployment JSON config | Add the licence keys to the JSON file that you want to use during deployment. Insert your license keys into the NOLIC-44-TMM-vcf-ems-public.json file. o Look for all of the lines in the JSON file containing: ▪ “licenseFile”: “<INSERT LIC>” o Replace the quoted text with a valid license key o Do not edit anything else in the JSON |
Run the PowerShell GUI | Locate the VLCGUI PowerShell file and right-click to run as administrator. Or to run with PowerShell. ![]() |
Select the Automated option in the GUI that opens | Select the Automated Option and then populate the fields with the info needed and then click “Connect” to validate the connection to the host and pull back the PG’s and the DS’s so you can select one to use. ![]() |
Validate and deploy | Once the connection has pulled back the options for PG and DS. Select the ones to use and then click validate. The PG must be the PG created earlier and the one that the second NIC on the jump host is connected to. Once it has been validated click the “Construct button”![]() |
Wait for deployment to complete | During the deployment, you will see two Powershell windows. One is the detail of what is happening and one is the main task that is the main action that happening at that time. Both are helpful in fixing problems with deployment if you have any. ![]() |