I have been working on a script to deploy environments on a regular basis in my homelab. While I have made great progress I have not been able to get this completed due to the lack of time. It did up my powershell script writing skills.
A while ago I followed a webinar about VMware Cloud Foundation Lab Constructor (VLC in short). This will deploy a VCF environment in a decent amount of time. With little effort I have been able to get this up and running multiple times. There are some pitfalls I ran into. My goal is to get to learn more about VCF, NSX-T and K8s all in a VMware Validated Design (VVD) setup.
You can get access too by completing the registration form at tiny.cc/getVLC.
The following files are included in the download:
- Example_DNS_Entries.txt
- VCF Lab Constructor Install Guide 39.pdf
- VLCGui.ps1
- add_3_hosts.json
- add_3_hosts_bulk_commission VSAN.json
- default-vcf-ems.json
- default_mgmt_hosthw.json
- maradns-2.0.16-1.x86_64.rpm
- mkisofs.exe
- plink.exe
As I already have a DNS infrastructure in place I used ‘Example_DNS_Entries.txt‘ as a reference to create all the necessary DNS entries.
Read the documentation pdf FIRST. It will give you a good insight in what will be set up, won’t be set up and how everything will be set up. I’m not planning to repeat info that is included in the documentation. The only thing that I have copied from this pdf is the disclaimer because I feel it is important:
Below I have included the various configuration files and split them to show the different parts and also show where I deferred from the default. There are the configuration files that the VLC script will use:
- Management domain:
- default-vcf-ems.json → changed all ip addresses, gateways, hostnames, networks and licenses
- default_mgmt_hosthw.json → changed the amount of CPUs (8 → 12), the amount of RAM (32 and 64 → 80) and the disk sizes(50,150 and 175 → 150)
- Workload domain
- add_3_hosts.json → changed the hostname, management IP and IP gateway
To deploy VCF and be able to deploy NSX-T you will need a good amount of resources. The mimimum of host resources to be able to deploy NSX-T is 12vCPUs (There is a workaround to lower the vCPU requirements for NSX-T) and 80GB of RAM due to the NSX-T requirements.
The configuration files
The first file is the ‘default_mgmt_hosthw.json’. This file describes the specs for the (virtual) hardware for the management domain hosts:
The second file is the ‘default-vcf-ems.json’. This file describes the configuration for all software components for the management domain:
The last configuration file is ‘add_3_hosts.json’. This configuration file is optional and can be used to prepare three extra hosts for the first workload domain:
Where did I change the defaults
There are some settings that I changed from the defaults aside from changing the names and network settings:
- in the ‘default_mgmt_hosthw.json’ I have changed the CPU to 12 to be able to deploy NSX-T
- in the ‘default_mgmt_hosthw.json’ I have changed the RAM 80 to be able to deploy NSX-T
How do we start
If you are meeting the prerequirements it is fairly simple. Fire up the ‘VLCGui.ps1’. This will present the following gui which will give the ability to supply all the necessary information and to connect to your physical environment. It speaks for itself, just make sure the Cluster, Network Name and Datastore field are higlighted blue like the following.
What’s next
I hope to expand this inital post with a couple of follow-up posts. These are the topics that I’m currently thinking about:
- NSX-T
- importing the upgrade and deployment bundles
- K8s
… and maybe more …
Additional info
Support:
Slack VLC Support channel – http://tiny.cc/getVLCSlack
Some blogs:
https://blog.bertello.org/2019/08/building-nested-vcf-using-vcf-lab-constructor-vlc/ and https://blog.bertello.org/category/automation/
https://vinfrastructure.it/2019/10/vmware-cloud-foundation-3-9/