🎉 vSphere 8.0 (IA) Initial Availability is LIVE! 🎉
FYI: RN still being published
vCenter
📒https://t.co/YTgxFB1k7S
💿https://t.co/Yn4mKnj8g7ESXi
📒https://t.co/jQ3nkkxExl
💿https://t.co/xdkO8NVGKDvSphere w/Tanzu
📒https://t.co/054qjFQE7O pic.twitter.com/EySqneYDoq— William Lam (@lamw) October 11, 2022
Continuing with the tradition of a new vSphere release, I have also released an update to my Nested ESXi Virtual Appliance to support the latest vSphere 8 release.
I know many of you are excited to get hands on experience with vSphere 8 and start exploring some of the new features and capabilities. To make it even easier to deploy, I have created an updated version of my vSphere and vSAN Lab Deployment script which you can find on my Github repo: Automated vSphere & vSAN 8 Lab Deployment Github Repo
Here are a few screenshots of using the PowerCLI script:
The deployment took ~37 minutes in my environment and after that, you will have a fully functional and ready to use vSphere and vSAN 8 lab!
Simliar to previous lab deployment scripts, the deployed VMs will be placed into a vApp as shown below.
Hi William. First of all, thank you for this precious piece of scripting, it is a very handy tool. I have just one question. Is it possible to target a physical instead of the vCenter v7 you have defined in the requirements? Thank You!
Not sure what you mean by target physical instead of vCenter v7? The requirement is that you have a vSphere 7 setup, usually its physical 🙂
Hi William, you have this in the requirements: "vCenter Server running at least vSphere 7.x or later" my question is, instead of vCenter, can we run the script against an ESXi running standalone? Thanks
No, vCenter is a requirement for the script
Hi William - nice work as usual. It was a pleasure meeting you during the VMware Explore 2022 in one your your session. Did you try to run this script from a Windows machine? I did install PowerShell Core LTS 7.2.6 and PowerCLI, but it is failing with error on line 243. I have a brand new vcsa with 1 esxi host with enough capacity to run this lab. Tried to run on PowerShell ISE and modify the check for PowerShell core to "Desktop" and still the same error. I checked the Logs and I can't find anything outstanding to point to the error.
Thanks in advance for your help!
I've not run this specific version on Windows, I primarily use PowerShell on Mac but this code is not new and has been tested in the past. L243 is a strange place to fail, so wondering if you have the correct input for ESXi VM variables?
Hi Williams - I was able to build a macOS BigSur VM and your script ran like a charm! I am OK with deploying the LABs from a macOS VM and then managing them from my regular desktop. Problem solved 🙂 Have a great weekend, for what's left of it. Thanks again!
hi, does ESXi 7.0 licence key works for ESXi 8.0 when doing in place upgrade ?
No, there are new vSphere 8 license keys afaik. You'll need to work with your account team as I'm not involved in licensing details.
any "free" licenses for home usage maybe available ?
Hello, I'm hitting the following error on step "Deploying the VCSA" : Could not find the hardware virtualization key from the ESXi host
What I found weird is that nested VCSA and ESXi are all running.
I'm running my homelab on AMD Zen3 platform (Ryzen 5950x) using consumer motherboard (Asus Crosshair Hero VIII). I double checked and yes SVM is enabled on every hosts. I'm running VCSA and ESXi on latest release from 7.x branch.
Hello,
I am running into the same issue, running my Homelab using Ryzen 9 5950X as well.
Also,
I did run into issues running the script on windows. It was failing on vcsa deployment.
To get around the issue, I removed the logic for the deployment on Win, MacOS or Linux.
I was also curious how you are setting the variables which specify the OS.
I do not see $IsWindows set anywhere for example.
Thank You for all that you do!
I have the same "Could not find the hardware virtualization key" issue with non-homelab EPYC chips - assuming this is a deeper issue.
I had the same on a Threadripper Pro 3955:
Could not find the hardware virtualization key from the ESXi host 'xxx.lan'.
I'm having the process of setting up the VCSA fail at various points and never fully completing. If I let it run long enough it will time out on the deploy and then create the vApp but fail on the rest. Two things I notice is the OVF tool when it gets an IP address returned in the log gets an IPV6 address instead of the assigned IPV4 address. The other is that after the VCSA install fails the script tries to add the physical hosts from the cluster I'm installing too after trying the nested hosts. Of course, it fails because the VC is not there, but that could be a problem if the install had succeeded.
I've run the installer from the CMD terminal with the generated json file and it also gets the IPV6 address, but also fails to complete the install.
Not sure if its the same for you but for me the $IsWindows variable was not working.
So I just ended up with removing the IF condition, removing the part for MacOS and Linux, and the letting script run the windows part for installing VCSA-1. (starting from line327)
I've opened some PR's on GitHub about this.
or issues!
Hi William,
do you have a „quick tip“ how to use the script to build a nested vSphere 8 environment _without_ vSAN?
Thx Volker
Yes, disable it in script 🙂
Hello William,
IP address that you are using, are they tied in to your home network? If you deploy windows vm to your nested environment, will it have access to the internet?
If your network has access to the Internet, and your environment has access to the internet, your VMs should have access to the internet, depends how you have configured your LAN
Also, will this lab support vMotion provide that it’s configured manually?
You can configure items manually after deployment, and do what you like with the Nested Lab
Hi William - nice script. It's my first time setting up a nested enviromen with your script or any script. It started fine, but when the script finished running I saw that it missed a few things. It hadn't added the hosts to the new cluster. So no vSAN was created. I checked the log file for errors or failed messages but coulden't find any. I have runned the script twice with the same results. Do you have any thoughts on what could have gone wrong, if I missed any prerequisites in my environment?
Thanks in advance for your help!
Hello i get this
Unable to find /vmfs/volumes/DataStore1-1TB-SSD/Software/VMware/Lab/Nested_ESXi8.0_IA_Appliance_Template_v2.ova
Can some one help?
You deploy this from your desktop system, NOT on ESXi
Thank you. I have tried running the script from my mac and from windows computer.
Get-Cluster: /Users/......./vsphere-8-lab/vsphere-vsan-8-lab-deployment.ps1:238
Line |
238 | $cluster = Get-Cluster -Server $viConnection -Name $VMCluster
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| 11/14/2022 9:01:50 PM Get-Cluster Cluster with name 'Tek-Cluster' was not found using the specified filter(s).
This is the very first error that i get. I have been trying to deploy it for the past 2 hrs. nothing i do is working 🙁
Hi william,
Thanks for the script but I've error during the vcsa deployment
[11-19-2022_04:30:29] Deploying the VCSA ...
Failed to collect support bundle from the deployed appliance 'vcsa8'. Exception:
HTTPSConnectionPool(host='pcc-XXX.ovh.com', port=40067): Max retries
exceeded with url: /guestFile?id=85&token=5235ef83-306a-8ae0-55e5-07af0401394885
(Caused by SSLError('Fingerprints did not match. Expected
"7f4ca02d5020f4f456a169c60613e44570fbb332", got
"b\'b24dbab9104ccc007e3063c3e682b6259de494e5\'".',))
Cannot fetch certificate from 'vcsa8'. Error: [Errno 11001] getaddrinfo failed
Error message: The VCSA deployment has failed VCSA Deployment Start Time:
1970-01-01T00:00:00.000Z VCSA Deployment End Time: 1970-01-01T00:00:00.000Z
Do you have an idea ?
Thanks
Sounds like you don’t have DNS setup correctly? Ensure all host names you’re using can resolve OR only use IPs. Please re-read GitHub docs
Hi William,
Thank you for this script. I really learned a lot by reading through the powershell script and eventually deploying it.
But when adding additional vNICs to my nested ESX hosts I am experiencing partitioned networks even when adding the additional advanced options to these VM's (ethernet2.filter4.name and ethernet2.filter4.onFailure) and the MAC learning option on the DPG.
Got any clue what seems to be missing here?
Does the ESXi8 OVA have the legacy CPU support enabled?
No. You'll need to add this via boot option SHIFT+O and then permanently set it via ESXCLI for persistence
Thank you.
Hi William,
Thanks for making this script but I am unable to get it work. I am using a Windows 10 Desktop with Powershell + PowerCLI installed on it.
I have a 3 node ESXi 7 cluster with VCenter 7 on it and a nfs-datastore. I am unable to understand where to put the vsphere 8 ova and the vcenter 8 (extracted). I put it on a datastore but then how will i give the path. - I am not able to get started itself.
i have given the path as
/vmfs/volumes/vmware-nfs/Nested_ESXi........ ova path
/vmfs/volumes/vmware-nfs/Vcenter-8....... path of the vcenter 8 iso extracted
but when I run the script I get.
unable to find /vmfs/volumes/vmware-nfs/Nested_ESXi....
point is how will we let vcenter know this path.. as the nfs is not mounted in the vcenter and how will vcenter access this path
The files along with the script run from your local desktop, not on your ESXi host 🙂
Can some one please make instructions for people that are unfamiliar with powershell ect. What exactly needs to be present on vcenter prior to deployment? are clusters needs to be created prior running the script? I have been trying to deploy this for over a week and nothing had worked so far. With latest attempt i get this error.
Import-VApp: C:\Users\me\Documents\VMware\Lab\LabDeployment.ps1:269
Line |
269 | … n $ovfconfig -Name $VMName -Location $cluster -VMHost $vmhost -Datast …
| ~~~~~~~
| Cannot validate argument on parameter 'VMHost'. The argument is null or empty. Provide an argument that is not
| null or empty, and then try the command again.
is there a video tutorial that explains on how to do this? I am even willing to pay some one to help with understand this thing!
ok, so i have made some progress but getting stuck on this
"Cannot fetch certificate from 'localhost'. Error: [WinError 10061] No connection could be made because the target machine actively refused it"
Can some one please point me in to the right direction on this? 🙂
Also while looking at the logs i found this error
Powering VM: vcsa-1 task failed. Error: Task Failed on server: Insufficient resources to satisfy configured fail-over level for vSphere HA.
Please, any one?
wow, a few days and no one is willing to help???
I am running the scipt and when it gets to the point where it should be creating vApp on a Datacenter i get an error message in vcenter saying "The Operation is not supported"
You need to have DRS enabled on the cluster.
Having a weird issue with deployment, the steps where it is supposed to create the VDS, create new Management Port Group, and then migrate hosts to the VDS are not happening. If I look in the newly created Virtual Center, I'm not seeing it even attempt to create the VDS, so it makes sense those subsequent tasks are failing. This is from the deployment log.
[02-09-2023_05:57:32] Creating VSAN DiskGroup for 192.168.2.13 ...
New-VDSwitch: C:\Users\Andy\Desktop\Nested-vSphere8.ps1:450
Line |
450 | … VDSName -Location (Get-Datacenter -Name $NewVCDatacenterName) -Mtu 16 …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot convert 'System.Object[]' to the type 'VMware.VimAutomation.ViCore.Types.V1.Inventory.VIContainer'
| required by parameter 'Location'. Specified method is not supported.
[02-09-2023_05:58:04] Creating VDS Management Network Portgroup
New-VDPortgroup: C:\Users\Andy\Desktop\Nested-vSphere8.ps1:453
Line |
453 | … Portgroup -Server $vc -Name $NewVCMgmtPortgroupName -Vds $vds | Out-F …
| ~~~~
| Cannot validate argument on parameter 'VDSwitch'. The argument is null or empty. Provide an argument that is not
| null or empty, and then try the command again.
Get-VDPortgroup: C:\Users\Andy\Desktop\Nested-vSphere8.ps1:454
Line |
454 | Get-VDPortgroup -Server $vc $NewVCMgmtPortgroupName | Get-VDU …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| 2/9/2023 5:58:04 PM Get-VDPortgroup VDPortgroup with name 'DVPG-Management-Network' was not found using the
| specified filter(s).
[02-09-2023_05:58:04] Adding 192.168.2.11 to VDS
Add-VDSwitchVMHost: C:\Users\Andy\Desktop\Nested-vSphere8.ps1:458
Line |
458 | $vds | Add-VDSwitchVMHost -VMHost $vmhost | Out-Null
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot validate argument on parameter 'VDSwitch'. The argument is null or empty. Provide an argument that is not
| null or empty, and then try the command again.
Add-VDSwitchPhysicalNetworkAdapter: C:\Users\Andy\Desktop\Nested-vSphere8.ps1:461
Line |
461 | … $vds | Add-VDSwitchPhysicalNetworkAdapter -VMHostNetworkAdapter …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot validate argument on parameter 'DistributedSwitch'. The argument is null or empty. Provide an argument
| that is not null or empty, and then try the command again.
[02-09-2023_05:58:04] Adding 192.168.2.12 to VDS
Add-VDSwitchVMHost: C:\Users\Andy\Desktop\Nested-vSphere8.ps1:458
Line |
458 | $vds | Add-VDSwitchVMHost -VMHost $vmhost | Out-Null
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot validate argument on parameter 'VDSwitch'. The argument is null or empty. Provide an argument that is not
| null or empty, and then try the command again.
Add-VDSwitchPhysicalNetworkAdapter: C:\Users\Andy\Desktop\Nested-vSphere8.ps1:461
Line |
461 | … $vds | Add-VDSwitchPhysicalNetworkAdapter -VMHostNetworkAdapter …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot validate argument on parameter 'DistributedSwitch'. The argument is null or empty. Provide an argument
| that is not null or empty, and then try the command again.
[02-09-2023_05:58:04] Adding 192.168.2.13 to VDS
Add-VDSwitchVMHost: C:\Users\Andy\Desktop\Nested-vSphere8.ps1:458
Line |
458 | $vds | Add-VDSwitchVMHost -VMHost $vmhost | Out-Null
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot validate argument on parameter 'VDSwitch'. The argument is null or empty. Provide an argument that is not
| null or empty, and then try the command again.
Add-VDSwitchPhysicalNetworkAdapter: C:\Users\Andy\Desktop\Nested-vSphere8.ps1:461
Line |
461 | … $vds | Add-VDSwitchPhysicalNetworkAdapter -VMHostNetworkAdapter …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot validate argument on parameter 'DistributedSwitch'. The argument is null or empty. Provide an argument
| that is not null or empty, and then try the command again.
If I run the commands from line 450-454 the VDS, uplinks, and port group are created fine so I am not sure why this is failing. I am using latest VCSA 8.0 Update A I believe, downloaded yesterday, along with latest 8.0 update A nested OVA. The only things I have changed are, I set createvApp to 0 because it was consistently failing, and I am using my 192.168.2.0/24 for my subnet instead of what comes in the code.
Hi, which line is the creation of vAPP?
I have the same issue. It always fails on creating vApp and stops deploying and configuring anything after that.
Never mind found the answer, aside fromt the script it self the logger function: My-Logger "Connecting to the new VCSA ..." insinuates that new VCSA will be created.
Is there a way to run these automated lab scripts to deploy an environment/lab in VMware Workstation instead of needing to deploy the script/nested lab on an existing ESXi bare metal host? Workstation is my only option unfortunately, but I need to run Windows on the host. I built a system with 128 GB of RAM just for this. Sorry if this is a dumb question, but I'm just unsure. If not, do you have any other suggestions for an easy lab build on Workstation? Thank you.
Not easily, since all the interfaces I’m using relies on either ESXi or vCenter endpoint
Oh too bad (for me). Thank you for your reply.