In this blog post, I am going to break down a PowerShell code I have created (with help from some colleagues). The functions of this PowerShell code are;
- Present a GUI form to the end user
- Connect to a vCenter
- Select the virtual machine to be cloned
- Select the datastore the new VM is to be stored on (display DS free space)
- Select the host for this VM to be created against (display free memory on the host)
- Set the new VM name
- Create an IP reservation in both the Production and DR DHCP Scopes
Below are some functional screenshots of the code’s GUI and also a rough flowchart of what I needed to achieve.
You can skip to the end to find the full code or my github.
TAM Lab Recording
Since posting this blog, I also covered this in a VMware TAM Lab recording which you can watch below.
A little more background on the script
So my customer had a dedicated environment for hosting their custom application, however these applications were built and running inside an old unsupported OS which expected to be running on a particular era of CPU’s to run correctly, for example todays Intel Skylake would cause the OS to panic and not run. As you can also imagine with this type of older OS, there are no VM Tools support either.
Here is the architecture diagram;
Providing DR around this environment was interesting, we could protect the VM using SRM and storage array LUN replication. But this also presented some issues, when the VM boots in DR. “what happens with networking?” hence we setup a DHCP reservation on both Production and DR. Meaning we know the VMs IP regardless of where its booted.
Continue reading PowerCLI with a GUI – Clone a machine, add DHCP Reservations, alter CPUID