Skip to content

PowerShell OVF Helper

OVF Template for VMware NSX-T 4.1

The following PowerShell snippet can be used to deploy VMware NSX-T 4.1 using PowerShell. The VMware.PowerCLI module is required to use the script.

  1. Copy the snippet to your favorite editor
  2. Change the path to your local OVA file
  3. Fill out the variables
  4. Connect to a vCenter Server using the Connect-VIServer command
  5. Run the script
ovf-VMware-NSX-T-4.x.ps1:
#Requires -Module  VMware.VimAutomation.Core

$ovf = '.\nsx-unified-appliance-4.0.0.1.0.20159694.ova' # Path to OVA File
$ovfConfig = Get-OvfConfiguration $ovf
$ovfConfig.DeploymentOption.Value = "medium"              # Deployment Size (extra_small|small|medium|large)
                                                          # ExtraSmall: 2 vCPU / 8GB RAM / 300GB Storage - This configuration is only supported for the nsx-cloud-service-manager role.
                                                          # Small: 4 vCPU / 16GB RAM / 300GB Storage - This configuration is supported for Global Manager Production deployment.
                                                          # Medium: 6 vCPU / 24GB RAM / 300GB Storage - This configuration is supported for Local Manager Production deployment.
                                                          # Large: 12 vCPU / 48GB RAM / 300GB Storage - This configuration is supported for Local Manager Production deployment.
$ovfConfig.NetworkMapping.Network_1.Value = ""            # Destination network (Portgroup)
$ovfConfig.IpAssignment.IpProtocol.Value = "IPv4"         # IP protocol for Management Network (IPv4|IPv6)
$ovfConfig.Common.nsx_grub_passwd.Value = ""              # The password for GRUB root user for this VM.
$ovfConfig.Common.nsx_grub_menu_timeout.Value = ""        # The timeout to display GRUB menu for this VM.
$ovfConfig.Common.nsx_passwd_0.Value = ""                 # System Root User Password
$ovfConfig.Common.nsx_cli_passwd_0.Value = ""             # CLI "admin" User Password
$ovfConfig.Common.nsx_cli_audit_passwd_0.Value = ""       # CLI "audit" User Password
                                                          # Please follow the password complexity rule as below:
                                                          # Minimum of 12 characters in length / >=1 uppercase character / >=1 lowercase character / >=1 numeric character / >=1 special character /  >=5 unique characters
                                                          # Default password complexity rules as enforced by the Linux PAM module.
                                                          # NOTE: Password strength validation will occur during VM boot. If the password does not meet the above criteria then login as root user for the change password prompt to appear.
$ovfConfig.Common.nsx_cli_username.Value = "admin"        # CLI "admin" username (default: admin)
$ovfConfig.Common.nsx_cli_audit_username.Value = "audit"  # CLI "audit" username (default: audit)
$ovfConfig.Common.nsx_hostname.Value = ""                 # The hostname for this VM.
$ovfConfig.Common.nsx_role.Value = "NSX Manager"          # The role for this VM.  (NSX Manager|nsx-cloud-service-manager|NSX Global Manager)
$ovfConfig.Common.nsx_ip_0.Value = ""                     # Management Network IPv4 Address
$ovfConfig.Common.nsx_netmask_0.Value = ""                # Management Network Netmask
$ovfConfig.Common.nsx_gateway_0.Value = ""                # Default IPv4 Gateway
$ovfConfig.Common.nsx_ip6_0.Value = ""                    # The IPv6 Address for the first interface. 
$ovfConfig.Common.nsx_netmask6_0.Value = ""               # The IPv6 netmask prefix for the first interface. (ex.- 64)
$ovfConfig.Common.nsx_gateway6_0.Value = ""               # The default IPv6 gateway for this VM
$ovfConfig.Common.nsx_dns1_0.Value = ""                   # Space separated DNS server list for this VM.
$ovfConfig.Common.nsx_domain_0.Value = ""                 # Space separated domain search list for this VM.
$ovfConfig.Common.nsx_ntp_0.Value = ""                    # Space separated NTP server list for this VM.
$ovfConfig.Common.nsx_isSSHEnabled.Value = $true          # Enable SSH ($true or $false)
$ovfConfig.Common.nsx_allowSSHRootLogin.Value = $true     # Allow root SSH logins ($true or $false)
$ovfConfig.Common.nsx_swIntegrityCheck.Value = $false     # Software Integrity Checker is required only for NDcPP 2.2

$VMName = ""                  # Virtual Machine Display Name
$vmhost = ""                  # ESXi Host to deploy the VM
$datastore = ""               # Datastore to deploy the VM
$diskStorageFormat = "Thick"  # Thin or Thick provisionig of virtual disks

$vm = Import-VApp -Source $ovf -OvfConfiguration $ovfconfig -Name $VMName -VMHost (Get-VMHost -Name $VMHost) -Datastore $datastore -DiskStorageFormat $diskStorageFormat
#$vm | Start-VM   # Uncomment to power on the VM after creation.

Please leave a comment when you have issues with the deployment. Additional feature requests are also welcome.

Confirmed Images:
nsx-unified-appliance-4.1.0.0.0.21332677.ova

<-- Back to PowerShell OVF Helper