← Back to Engineering Blog
πŸ—“οΈ Jun 1, 2021⏱️ 2 min read

One-Click Nested SDDC Deployment: Automated vSphere & NSX-T Labs via Ansible

How we automated the end-to-end provisioning of nested vSphere ESXi, vCenter, and NSX-T SDDC lab environments in 12 minutes using Ansible playbooks and OVFTool.

πŸŽ™οΈ Listen to ArticleREADY
AI Audio Synthesis Narrator
Share Post:

β€œManual lab environment provisioning is the enemy of rapid engineering validation.”

The Setup

In June 2021 at NTT Data, our systems integration team required isolated, multi-node Nested SDDC (Software-Defined Data Center) lab environments to validate vRealize automation workflows and NSX-T API integrations before client pushes.

A full nested SDDC lab required deploying virtual ESXi hosts, vCenter Server Appliance (VCSA), NSX-T Manager nodes, and synthetic vyos router VMs.


The Mess

Spinning up a fresh lab manually was a painful 8-hour process:

  • Engineers spent hours downloading OVA templates, filling out 30 vCenter deployment wizard parameters, and waiting for VCSA first-boot scripts.
  • MAC address collisions and IP conflicts occurred frequently due to manual IPAM entries.
  • Junior engineers often skipped ESXi nested VT-x virtualization flags (vhv.enable = "TRUE"), causing nested VMs to fail silently during boot.
[DEPLOYMENT ERROR] 2021-06-10 14:15:22 - OVFTool Execution Log
Opening OVA target: /templates/nsx-unified-appliance-3.1.0.ova
Error: OVF Property mismatch for 'nsx_cli_passwd'. Password does not meet complexity rules.
Deployment Aborted: Appliance destroyed after 45 minutes of OVA extraction.

The Solution

I designed a One-Click Nested SDDC Deployment Engine using Ansible and VMware OVFTool:

  1. Automated OVA Deployment via OVFTool: Scripted head-less OVFTool deployments passing inline XML property specs for VCSA and NSX-T Manager.
  2. Automated VMX Injection: Injected vhv.enable = "TRUE" and hypervisor.cpuid.v0 = "FALSE" into ESXi configuration files to enable nested Hardware-Assisted Virtualization.
  3. Idempotent Post-Boot Configuration: Executed Ansible tasks to configure vCenter Datacenters, Clusters, vSAN storage pools, and NSX-T Transport Nodes automatically.
# roles/nested_sddc/tasks/deploy_vcsa.yml - Automated VCSA Deployment
- name: Deploy VCSA Appliance via OVFTool
  command: >
    ovftool --acceptAllEulas --noSSLVerify
    --datastore="{{ lab_datastore }}"
    --name="Nested-VCSA-01"
    --net:"Network 1"="VM Network"
    --prop:guestinfo.cis.appliance.net.addr.1="{{ vcsa_ip }}"
    --prop:guestinfo.cis.appliance.net.pnid="{{ vcsa_fqdn }}"
    --prop:guestinfo.cis.appliance.root.passwd="{{ root_password }}"
    "/templates/VMware-vCenter-Server-Appliance.ova"
    "vi://root:{{ host_pass }}@{{ esxi_host }}"

Key Takeaway

Do not build lab environments manually. Automating nested SDDC deployments via Ansible and OVFTool reduces lab spin-up times from 8 hours to 12 minutes, accelerating engineering validation.


Architecture and decisions: mine. Debugging sessions at odd hours: mine. AI assistance: structure, syntax, first draft. β€” Sachin

SKS

Sachin Kumar Sharma

Associate Director (Infrastructure & Cloud Architecture Strategy) | 20+ Yrs Exp

Architecting resilient multi-cloud enterprise landing zones, SDN overlay fabrics, DevSecFinOps automation pipelines, and autonomous Agentic AI platforms.

πŸ“¬

πŸ“¬ Stay Updated on Tech Releases

Sign up to get notified when I publish new production war stories, agentic AI architecture blueprints, or open-source infrastructure tools.

⚑ Theme Adaptive Shift
Switching layouts matching domain reading affinity...