WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud Foundation
    • VMware Cloud Foundation 9.1
    • VMware Cloud Foundation 9.0
  • VKS
  • Homelab
    • Hardware Options
    • Hardware Reviews
    • Lab Deployment Scripts
    • Nested Virtualization
    • Homelab Podcasts
  • VMware Nostalgia
  • Apple
You are here: Home / VMware Cloud Foundation / VCF 9.1 - Automated VMware Cloud Foundation (VCF) & VMware vSphere Foundation (VVF) Nested Lab Deployment

VCF 9.1 - Automated VMware Cloud Foundation (VCF) & VMware vSphere Foundation (VVF) Nested Lab Deployment

05.14.2026 by William Lam // 10 Comments

Nested ESX continues to be a popular way to explore and learn about VMware Cloud Foundation (VCF), it is also the basis for the VCF Holodeck solution.

With the release of VCF 9.1, Nested ESXi VMs can now run on physical hosts with NVMe Tiering enabled, no workarounds required. In addition, you can extend the benefits of NVMe Tiering to a Nested ESX VM by applying the following VM Advanced Setting.

The easiest and quickest way to deploy a Nested ESX VM is to my Nested ESX Virtual Appliance, which has been refreshed for 9.1!

Note: The latest Nested ESX 9.1 Virtual Appliance no longer comes with default password, you will need to specify that as part of the OVF deployment.

While I have personally switched from using a nested VCF deployments to physical setup, mainly due to lack of resources, I know many of you do have sufficient capacity to run a full VCF deployment in a Nested environment.

I have also refreshed my VMware Cloud Foundation Nested Lab (VCF) Fleet Deployment script to support both VCF and VVF 9.1


Here is a screenshot of the initial deployment that takes ~25 minutes to deploy three Nested ESX VM, initialize the VCF Installer, sync from a VCF Offline Depot, generate the deployment JSON and then automatically start the VCF Fleet deployment. šŸ˜Ž

Categories // VMware Cloud Foundation, VMware vSphere Foundation Tags // VCF 9.1

Comments

  1. *protectedChris says

    05/14/2026 at 4:00 pm

    I keep getting a "Something went wrong. Please try again later!" in the lower left when trying to download 9.1 -- or anything that is not 9.0

    Reply
    • *protectedChris says

      05/14/2026 at 4:02 pm

      Nevermind. Using the link in this article worked fine. But using the previous link on previous articles and selecting 9.1 doesn't work for whatever reason.

      Reply
  2. *protectedStephen Yu says

    05/18/2026 at 9:58 am

    Dear William
    Broadcom changed download token. I need to provide UUID first.
    Then I can get token or key.

    Reply
  3. *protectedJerard Chilton says

    05/18/2026 at 12:21 pm

    Dear William, running the powershell from a Win machine but cant get the script to see the full path to the ova's. I'm using $NestedESXiApplianceOVA = "E:\VMWare\VCF 9.1.0\Nested_ESXi9.1.0.0_Appliance_Template_v1.0.ova" but its throwing an error:

    PS E:\VMWare\VCF 9.1.0> .\vcf-automated-fleet-deployment.ps1 -EnvConfigFile .\chillyconfig-vcf-9.1.0
    InvalidOperation: E:\VMWare\VCF 9.1.0\vcf-automated-fleet-deployment.ps1:22
    Line |
    22 | … gementDomainJSONFile = "$(${VCFInstallerProductSKU}.toLower())-mgmt-$ …
    | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    | You cannot call a method on a null-valued expression.
    Test-Path: E:\VMWare\VCF 9.1.0\vcf-automated-fleet-deployment.ps1:378
    Line |
    378 | if(!(Test-Path $NestedESXiApplianceOVA)) {
    | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    | Value cannot be null. (Parameter 'The provided Path argument was null or an empty collection.')

    Unable to find ...

    I've tried fwd\backslash and to no effect. What am i doing wrong???

    Reply
    • *protectedJerard Chilton says

      05/18/2026 at 12:27 pm

      Ignore my last; the config wasn't saved as a ps1.

      Reply
  4. *protectedIan Hirsinger says

    05/29/2026 at 7:26 am

    Great Guide. Just ran into small issue that script did not fail properly at the beginning due to not having set "Set-PowerCLIConfiguration -InvalidCertificateAction Ignore" It just continues to wait for the ova deployment although it never started.

    Reply
  5. *protectedIan Hirsinger says

    05/31/2026 at 11:37 pm

    Found a small bug: The script is not taking the customized domain name as the vcf.lcm is hardcoded value in line 770 "$VMName = "$($_.Key).vcf.lcm"" switched this to "$VMName = "$($_.Key)." + $VMDomain" and now it started using the customized domain name.

    Reply
    • William Lam says

      06/01/2026 at 6:27 pm

      Apperciate the catch Ian! I've just fixed and pushed the update

      Reply
      • *protectedIan Hirsinger says

        06/02/2026 at 4:55 am

        For whatever reason the Deployment did not deploy the Ops-Logs, although the debug-log showed the config in the json handed over to the VCF Installer. After installation the download of the json is missing the ops-logs section. Not sure if you have seen same.

        I also added for my need the user/password for the offline repo (the two variables must then be also added to the sample script:
        if($VCFInstallerSoftwareDepot -eq "offline") {
        $payload = @{
        "offlineAccount"= @{
        "username"= $VCFInstallerDepotUser
        "password"= $VCFInstallerDepotPass
        }
        "depotConfiguration" = @{
        "isOfflineDepot" = $true
        "url" = $VCFInstallerDepotUrl
        }
        }

        Reply
        • William Lam says

          06/02/2026 at 5:58 pm

          Log Management (formally VCF Operations for Logs) is a Day-N activity, you'll need to deploy via Ops UI once your VCF Fleet is up and running by going to Build->Lifecycle->VCF Management and Add Component

          Reply

Thanks for the comment!Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search

Thank Author

Author

William is Distinguished Platform Engineering Architect in the VMware Cloud Foundation (VCF) Division at Broadcom. His primary focus is helping customers and partners build, run and operate a modern Private Cloud using the VMware Cloud Foundation (VCF) platform.

Connect

  • Bluesky
  • Email
  • GitHub
  • LinkedIn
  • Mastodon
  • Reddit
  • RSS
  • Twitter
  • Vimeo

Recent

  • VCF 9.1 - Deploying VCF Management Services (VCFMS) to non-Management Network during VCF Upgrade 06/03/2026
  • VCF 9.1 - Side-loading VCF binaries into VCF Installer & Fleet Depot Service for Air-Gapped Environments 06/02/2026
  • VCF 9.1 - VMUG x Intel x Micron Collaboration on Single VCF Host Deployment for VMUG Connect 06/01/2026
  • VCF 9.1 - Deploying VCF Management Services (VCFMS) with Custom IP Allocation using SDDC Manager API 05/31/2026
  • VCF 9.1 - VCF Download Tool (VCFDT) Cheatsheet 05/27/2026

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.

To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2026

Loading Comments...