Introduction to automated nested labs
One of the issues with having a home lab is that when you build nested labs you typically end up spending a lot of time building your vSphere Core infra, and the other products you want to test from scratch. When you are at the point you can test the feature you want to test you spend so much time. And when you have built this nested lab clean it nicely up is also a time-consuming exercise when doing this properly.
For this reason, I decided to do something about it. I wanted to automate the build of nested labs, so I can directly jump into the features and functionality I have to test instead of spending so much time on the actual build.
In order to do this I had multiple options here:
- Use vRA with vRA blueprints
- Use vCloud Director
- Use Terraform / PowerCLI scripts
I decided to use the last one. Having a vRA or vCD environment introduces a large capacity need, that you typically don’t want as you want to use your resources as efficiently as possible. Even though I have 256 GB to play with on my management host and 768 GB of RAM in my Compute Cluster resources can still be better spend nested. And besides that, it is time to learn some Terraform anyway.
This blog series will explain to you all steps that I took to go from nowhere, to build a full-blown automated nested lab.
To fully understand what is going on, I will create different blog articles to go step-by-step because this can be overwhelming and difficult to understand if you miss one step.
- Introduction to automated nested labs
- My home lab environment
- Automating the installation of vSphere core
- The nested labs' project overview/introduction
- Nesting NSX-T (lab) inside NSX-T (infra)
- Subnet and IP address planning and registration using PHPIPAM
- Gitlab, Git and Visual Studio Code
- Install brew, PowerShell and Terraform on my MacBook Pro running OS X
- Terraform: NSX-T infra segments
- Terraform automation: Control center (Stepstone, DNS, NTP, AD, Etc.)
- Terraform automation: NAS Server (CIFS, NFS, Etc.)
- Terraform automation: vCenter Server
- Terraform automation: Nested ESXi Hosts (Management, Edge and Compute)
- Terraform automation: Virtual “physical” network (Cumulus Network)
More blog articles will be added in the future to finish the series on outstanding topics like:
- Enable Routing of different subnets inside a single infra-NSX-T segment
- Work with Terraform modules to call other terraform scripts from a single script
- Use Terraform Workspaces to deploy multiple lab instances with the same code
- Recreate the vmk0 interface
- Automating the configuration of the vSphere core environment
- Automating the configuration of the (nested) vSphere Core infrastructure
- Automating the installation of a (nested) NSX-T environment
- Automating the installation of the (nested) NSX-T infrastructure
- Automating the configuration of a (nested) NSX-T environment
- Automating the configuration of the (nested) NSX-T infrastructure
- Automating a 3-tier Application with (nested) Segments, Tier-0 and Tier-1 Gateways
I would like to thank Raymond de Jong, Yuki Tsuboi, and Dale Coghlan for the time they took to explain the method they are using in their lab to eventually allowed me to publish this blog series and allowed me to build my nested automated home lab. But I am not finished yet, so please lookout for the new articles as well.