# Zoom Node Hypervisor-Specific Deployments

When deploying Zoom Node in virtualized environments, you must align installation and configuration steps with the specific hypervisor platform in use. Each hypervisor—such as VMware vSphere, Microsoft Hyper-V, or others—may introduce unique requirements related to resource allocation, storage access, and network interface configuration.

This section provides detailed guidance for supported hypervisors, ensuring Zoom Node operates reliably and efficiently in your virtual infrastructure.

### <mark style="color:blue;">VMware vSphere deployments</mark>

The following section describes the VMWare vSphere installation method, which requires downloading and deploying a OVA (Open Virtual Appliance) file version of Zoom Node.

#### Download the OVA image

To download the image file:

1. Log in to the Zoom admin web portal.
2. Download the Zoom Node OVA image file by browsing to **Node Management > Modules > Node > Add Node**.\\

   <figure><img src="/files/w78qM94HgU1d630IMBp4" alt=""><figcaption></figcaption></figure>
3. Click the **Download** button.

#### Deploy the OVA image

To deploy the image file:

1. Log in to the VMware web interface.
2. Click **Create/Register VM**.
3. Under the Sect creation type menu, click **Deploy a virtual machine from an OVF or OVA file**.\\

   <figure><img src="/files/usgCa3YEqk0pnemZRxU9" alt=""><figcaption></figcaption></figure>
4. Click **Next**.
5. Enter a name for the Zoom Node VM.
6. Click the blue dialogue box to open a file browser and select the Zoom Node OVA image file you downloaded.
   1. (Optional) Drag and drop the image file into the box.

<figure><img src="/files/MpurpKr3sQnfix2Evg9r" alt=""><figcaption></figcaption></figure>

7. Click **Next**.
8. Choose the storage volume where you will store Zoom Node and click **Next**.
9. Choose the network the server will reside on.
   1. (Optional) You may thin provision the VM, if desired.

{% hint style="info" %}
“Thin provisioning” allows a virtual machine’s disk to use physical storage only as data is written, rather than reserving the full disk size up front. This method saves space, but you can risk running out of storage if overall usage grows faster than the available capacity.
{% endhint %}

<figure><img src="/files/DBJvVShnReJcrblcZINt" alt=""><figcaption></figcaption></figure>

10. Click **Next**.
11. Review your selections and click **Finish** to deploy the VM.

It may take a few minutes to complete the VM deployment.

Once booted, the VM will have similar settings and details as shown in the following image:

<figure><img src="/files/YHRmtKsgxf29gqK2II5b" alt=""><figcaption></figcaption></figure>

The VM deployment is complete.

### <mark style="color:blue;">Microsoft Hyper-V Deployment</mark>

The following section describes the Microsoft Hyper-V installation method, which requires downloading and deploying a VHDX file version of Zoom Node.

#### Download the Zoom Node VHDX Archive

The Zoom archive includes both the Zoom Node VHDX disk image and the VM's configuration metadata.

To download the archive:

1. Log in to the Zoom admin web portal.
2. Download the **Zoom Node VHDX** image from the Zoom admin portal by browsing to **Node Management > Modules > Node > Add Node**.\\
3. Download the Zoom Node VHDX file.
4. Extract the file into a local folder for temporary use.

### <mark style="color:blue;">(Optional) Creating a VHDX image from a QCOW2 (KVM) disk image using</mark> <mark style="color:blue;">`qemu-img`</mark> <mark style="color:blue;">on Windows</mark>

To use a QCOW2 (KVM) disk image with a Hyper-V environment, you can convert it to the VHDX format using `qemu-img` within PowerShell.

**Step 1: Download and Install `qemu-img` for Windows**

1. Browse to the official Cloudbase repository:\
   <https://cloudbase.it/qemu-img-windows/>
2. Download the Windows version of `qemu-img`.
3. Extract the contents to a known directory, such as: `C:\Users\Administrator\Downloads\qemu-img`.

**Step 2: Convert QCOW2 to VHDX Format Using PowerShell**

Open PowerShell and run the following command to convert your image:

{% code overflow="wrap" %}

```powershell
.\qemu-img.exe convert `
  -f qcow2 `
  -O vhdx `
  -p `
  .\ubuntu22-zoomcommon-build-dev-20250312012853-2.qcow2 `
  .\ubuntu22-zoomcommon-build-dev-20250312012853.vhdx
```

{% endcode %}

You should see a progress output similar to:

```
(100.00/100%)
```

{% hint style="info" %}

* `-f qcow2` specifies the input format
* `-O vhdx` specifies the output format compatible with Hyper-V
* `-p` enables a progress bar display during the conversion
* Adjust file paths as needed for your environment
  {% endhint %}

**Implementation Context and Practical Outcome**

Converting to VHDX allows you to import custom-built Linux images (like Ubuntu with pre-installed Zoom agents or services) into a Hyper-V VM. This supports custom lab environments, CI/CD testing, or localized development with consistent system configurations.

#### Deploying a Zoom Node Hyper-V VM

Hyper-V supports VM deployment using two major methods, the first via the GUI in Hyper-V Manager, and the second via PowerShell scripts. PowerShell is the easiest method to automate multiple Node deployments.

There are two methods that can be used to deploy the virtual machine. The simple method, Option 1, uses PowerShell commands to create a new Zoom Node VM using the VMDK with the correct attributes. Option 2 uses the Hyper-V Manager GUI to deploy the VM.

See the [Zoom Node Infrastructure Prerequisites](/advanced-enterprise-services/zoom-node/zoom-node-deployment-field-guide/zoom-node-infrastructure-prerequisites.md#supported-hypervisors) prerequisites page for more information.

{% hint style="info" %}
For certain module families (ZPLS, ZRH, CRC Hybrid), Zoom Node VM sizing may need to be adjusted. Refer to module-specific documentation for the correct attributes.
{% endhint %}

#### Option 1 (Recommended): Deploy the Zoom Node VM via PowerShell

{% hint style="info" %}
As of 2025, Microsoft PowerShell v5.1 is the supported version for the Hyper-V management plugin. PowerShell 7 may work, but some Hyper-V specific commands do not work properly.
{% endhint %}

Locate the storage location for your Hyper-V virtual machines. In this example, the Hyper-V server has VMs stored in `D:\!-HyperVMs`.

The following PowerShell commands are used to create the VM, attach the VHDX image, and customize the VM with the correct attributes.

{% code overflow="wrap" %}

```powershell
# ===========================
# Zoom Node VM: Hyper-V setup
# ===========================

# Edit these four values
$VMName      = "ZN-PROD-01"
$RootPath    = "D:\!-HyperVMs"  # folder that will contain the VM folder
$SourceVhdx  = "D:\Downloads\ubuntu22-zoomcommon-build-20250502110711.vhdx"
$SwitchName  = "vSwitch-Production"

# Derived paths
$VMFolder    = Join-Path $RootPath $VMName
$TargetVhdx  = Join-Path $VMFolder "$VMName.vhdx"

# --- Create a folder for the VM and copy the VHDX (full, independent clone) ---
New-Item -ItemType Directory -Path $VMFolder -Force | Out-Null

Copy-Item -LiteralPath $SourceVhdx -Destination $TargetVhdx -Force

# --- Create Gen 2 VM (no disk yet) ---
New-VM `
  -Name $VMName `
  -Generation 2 `
  -MemoryStartupBytes 16GB `
  -Path $VMFolder `
  -NoVHD | Out-Null

# --- CPU: 8 vCPU ---
Set-VMProcessor -VMName $VMName -Count 8

# --- Memory: static 16 GB (disable Dynamic Memory) ---
Set-VMMemory -VMName $VMName -DynamicMemoryEnabled:$false -StartupBytes 16GB

# --- Attach the cloned disk ---
Add-VMHardDiskDrive -VMName $VMName -Path $TargetVhdx

# --- Secure Boot + Microsoft UEFI CA + boot from the disk ---
# Enable Secure Boot for Linux (Ubuntu) with Microsoft UEFI CA
Set-VMFirmware -VMName $VMName -EnableSecureBoot On -SecureBootTemplate "MicrosoftUEFICertificateAuthority"

# Get the system disk object and set it as first boot device
$sysDisk = Get-VMHardDiskDrive -VMName $VMName | Where-Object { $_.Path -eq $TargetVhdx }
Set-VMFirmware -VMName $VMName -BootOrder $sysDisk

# --- Networking: connect to vSwitch (optional VLAN line commented) ---
Connect-VMNetworkAdapter -VMName $VMName -SwitchName $SwitchName
# Set-VMNetworkAdapterVlan -VMName $VMName -Access -VlanId 123

# --- Management behavior & checkpoints ---
Set-VM -Name $VMName -AutomaticStartAction StartIfRunning -AutomaticStopAction ShutDown
Set-VM -Name $VMName -CheckpointType Production -AutomaticCheckpointsEnabled:$false

# --- Integration Services: enable Guest Service Interface ---
$gsi = Get-VMIntegrationService -VMName $VMName -Name 'Guest Service Interface' -ErrorAction SilentlyContinue
if ($gsi -and -not $gsi.Enabled) {
  Enable-VMIntegrationService -VMName $VMName -Name 'Guest Service Interface'
}

# --- Start the VM (optional) ---
Start-VM -Name $VMName

```

{% endcode %}

#### Option 2: Deploy the VHDX and Manually Create the Virtual Machine

Option 2 involves manually creating the virtual machine by deploying the VHDX file. This method requires transferring the disk image from the extracted Zoom Node archive into the designated storage location for Hyper-V virtual machines and configuring the VM settings manually.

**Copy the VMDK to Hyper-V VM Storage**

1. Locate the storage location for your Hyper-V virtual machines. (In this example, the Hyper-V server has VMs stored in `D:\HyperVMs`.)

   <figure><img src="/files/CMdlNjhuMWNMFe1ndBrb" alt=""><figcaption></figcaption></figure>
2. Create a unique folder for the Zoom Node you are deploying, and in that directory create a new subdirectory called **Virtual Hard Disks**.

   <figure><img src="/files/vU71lDkkHgxHDSWn2e9m" alt=""><figcaption></figcaption></figure>
3. Copy the VHDX image file you downloaded from Zoom into the Virtual Hard Disks directory.
4. Log in to the Microsoft Hyper-V Manager console to manage the VMs.

**Define the VM**

In Hyper-V Manager, click **New** and select **Virtual Machine** from the right-hand pane. This will launch the **New Virtual Machine Wizard**.

1. Complete the **Specify a Name and Location** step:
   1. Enter a name for your Virtual Machine.
   2. (Optional) Choose a storage location. It’s common to store the VM configuration files in the same folder as the VM virtual disk.
   3. Check the box for “Store the virtual machine in a different location" and click **Browse**.

<figure><img src="/files/3jcJZpTGvmRXQxDecAeo" alt=""><figcaption></figcaption></figure>

2. Browse to the VM storage folder you created earlier.

<figure><img src="/files/8XkdNEAByi002gEZCDX1" alt=""><figcaption></figcaption></figure>

3. Select the folder.
4. Click **Next**.
5. Complete the **Specify Generation** step:
   1. Select the **Generation 2** radio button
   2. Click **Next**

<figure><img src="/files/0o32KtvE86ehlPmtJfyf" alt=""><figcaption></figcaption></figure>

7. Complete the **Assign Memory** step:
   1. In the **Startup memory:** text box, enter `16384` (MB)
   2. (Optional) Check the "Use Dynamic Memory for this virtual machine" to reduce allocated RAM
   3. Click **Next**

<figure><img src="/files/QZMFpixFNE2FO35juFYm" alt=""><figcaption></figcaption></figure>

8. Complete the **Configure Networking** step:
   1. Click the **Connection:** drop down and select a virtual switch to connect the VM to your network. This will be specific to your Hyper-V network environment.

<figure><img src="/files/TiITbTwjpuNT4bbtJdQN" alt=""><figcaption></figcaption></figure>

9. Click **Next**.

**Connect the VHDX disk image**

Next in the New Virtual Machine Wizard, you'll complete the **Connect Virtual Hard Disk** step. To connect the image:

1. Select the **Use an existing virtual hard disk** radio button.

<figure><img src="/files/iAtdgYLv8hWR9NhJtrfN" alt=""><figcaption></figcaption></figure>

2. Click **Browse** and locate the VM folder you created earlier.\\

   <figure><img src="/files/rtBe57vNLNxMWLur68UD" alt=""><figcaption></figcaption></figure>
3. In the file select window, click **Open**.
4. Click **Next**.
5. Review your settings and click **Finish** to create the VM with the attached VHDX disk.\\

   <figure><img src="/files/jQ517k91hgUIiJixcLvZ" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Do not start the VM yet.
{% endhint %}

**Configure Additional VM settings**

To configure additional settings:

1. Right click the deployed VM and select **Settings...**.\\

   <figure><img src="/files/dywhhlCDDOK4kVzRy4kw" alt=""><figcaption></figcaption></figure>
2. Under the **Hardware** category on the left-hand side of the screen, click **Security**.
3. On the right-hand side of the screen and under the **Security** heading, click the **Template:** drop-down list.
4. Select the **Microsoft UEFI Certificate Authority** option.\\

   <figure><img src="/files/n984UA8XyG84v8zxKT9l" alt=""><figcaption></figcaption></figure>
5. Click **Apply**.
6. Under the **Hardware** category on the left-hand side of the screen, click **Processor**.
7. On the right-hand side of the screen and under the **Processor** heading, set the **Number of virtual processors:** box to `8` (virtual processors).\\

   <figure><img src="/files/Fe5eDpoAOyu5K54vX6Yu" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
This is the default the Zoom Node requires to run four (4) modules. See the [Zoom Node Infrastructure Prerequisites](/advanced-enterprise-services/zoom-node/zoom-node-deployment-field-guide/zoom-node-infrastructure-prerequisites.md#deployment-sizing-and-capacity-planning-matrix) page for more information about resizing the VM when running fewer modules.
{% endhint %}

8. Click **OK** to accept the changes.

**Start the Virtual Machine**

To start up the VM:

1. Select your newly created VM in Hyper-V Manager.
2. From the **Actions** pane on the right-hand side of the screen, click **Start**.
3. Click **Connect** to open the VM console window.\\

   <figure><img src="/files/kXgdd3Xei2vuYd9XQZZW" alt=""><figcaption></figcaption></figure>

A working VM boot sequence will show the Linux boot screen. Next, the Zoom Node text interface will load.

{% hint style="info" %}
If you see a UEFI error message when trying to boot, you might not have set the Secure Boot method to "UEFI Certificate Authority."

<img src="/files/1c00Qjd942uftEtFVTyo" alt="unknown" data-size="original">
{% endhint %}

### <mark style="color:blue;">KVM deployments</mark>

The following section describes the Kernel-based Virtual Machine (KVM) installation method, which allows for Zoom Node installations through either Proxmox VE or KVM Virtual Machine Manager (Virt-manager).

#### KVM Proxmox Virtual Environment (VE)

Deploying Zoom Node on Proxmox VE using the qcow2 image requires additional steps compared to deploying an ISO image. The following steps will create a new, configured VM so the Zoom Node qcow2 image can be attached to that VM.

{% hint style="info" %}
A default deployment of QEMU/KVM will use hypervisor NAT and a private IP address pool to deploy VMs, managed by KVM. This is not a supported architecture for Zoom Node. While it is possible to deploy and run a Zoom Node behind hypervisor NAT, the clients on the network will not be able to communicate with it properly. Zoom Node must be deployed on a bridged interface so that it has IP addressing which falls into the IP range, which clients can communicate with.
{% endhint %}

**Define the Zoom Node Virtual Machine**

To define the VM:

1. Log in to the Proxmox management application interface.
2. Click the **Create VM** button. This will become the Zoom Node template VM.
3. Name the VM and **save the VM ID**.
   1. This information will be used in a subsequent step.
4. Click **Next** to continue.
5. Select **Do not use any media** on the OS settings page.
6. Click **Next**.
7. Choose the `q35` option under **Machine** settings.
   1. For the **BIOS** type, select **OVMF (UEFI)** and choose the volume you’d like the EFI settings stored on. This is set to the same VM volume you’re using to store the VM itself.

{% hint style="info" %}
The Machine and BIOS settings are critical to set as described. Otherwise, the VM will not boot successfully.
{% endhint %}

8. Click **Next**.
9. On the **Disks** page, select the storage volume where the VM will run from.
10. Set the **Disk size (GiB)** to `200`.
11. Choose **Write-Through** for the Cache.
12. Click **Next**.
13. Modify the **Cores** setting to `8`.
14. Click **Next**.
15. Adjust the **Memory (GiB)** setting to `16384`.
16. Click **Next**.
17. Choose the correct Network settings for your deployment, typically a bridge interface with a VLAN Tag.
18. Click **Next**.
19. On the **Confirm** page, ensure the **Start after created** check box is not selected.
20. Double-check the settings, focusing on `q35` as the machine type and `omvf` as the BIOS type.
21. Click **Finish** after verifying the settings are correct.
22. Log in to the [Zoom admin web portal](https://zoom.us/) as an administrator at <https://zoom.us>.

**Prepare the Zoom Node QCOW2 Image**

To prepare the image:

1. Browse to the Zoom admin portal under **Zoom Node > Modules > Nodes > Add Node**.
2. Download the current version of the **Zoom Node qcow2 image file**.
3. Copy the file to a directory accessible by Proxmox (like an NFS volume).
   1. (Optional) Copy it to the Proxmox server volume where VMs are stored.
4. Note the creation of the `111` directory and the empty disk image.
5. Write down the name of the disk image in this folder
   1. Example: `vm-111-disk-0.qcow2`.
6. Delete the disk image file.
7. Copy the **Zoom Node qcow2** file into this directory.
8. Rename this file to the original name of the disk image noted earlier (i.e. `vm-111-disk-0.qcow2`).
9. Return to the main Proxmox web interface and select the VM that was just deployed.
10. Right-click on the selected VM and choose to **clone** it.
11. Turn the clone into a template by naming it and clicking **Clone**.
12. Once cloning is complete, right click the clone and select **Convert to template**.
    1. You now have a deployable template.
13. Select the original VM and click to open the **Console**.
14. Start the VM by clicking the **Start Now** button.

Confirm the VM boots and displays the Zoom Node local textual user interface, which verifies the template's usability for future deployments.

#### KVM Virtual Machine Manager (Virt-manager)

Virtual Machine Manager (also known as virt-manager) is a popular application-based manager for QEMU/KVM virtual machines.

This deployment example uses Virtual Machine Manager on Ubuntu 22.04 LTS. However, it can run on many Linux distributions.

A default deployment of QEMU/KVM will use hypervisor NAT and a private IP address pool to deploy VMs, managed by KVM. This is **not** a supported architecture for Zoom Node.

{% hint style="info" %}
While it is possible to deploy and run a Zoom Node behind hypervisor NAT, the clients on the network will not be able to communicate properly. To ensure proper client communication, deploy the Zoom Node on a bridged interface that aligns with the client's IP address range.
{% endhint %}

To install using the virt-manager method:

1. Log in to the [Zoom admin web portal](https://zoom.us/) as an administrator.
2. Download the current version of the **Zoom Node qcow2 image file** from the Zoom Node admin portal by selecting **Zoom Node > Modules > Nodes > Add Node**.
3. Rename the file to your desired VM or disk name.
   1. Example: `ZN-SJC01-NODE01.qcow2`.
4. Move the file to a volume that Virtual Manager has access to.
5. Create a new VM in Virtual Manager.
6. Click **Import existing disk image**.
7. Select the volume where you stored the renamed qcow2 image.
8. Click the **Choose Volume** button.
   1. (Optional) If you don’t already have the right directory added to virt-manager, you can click **Browse Local** to add it.
9. (Optional) If the OS isn't auto-detected, set it to **Ubuntu 22.04 LTS**.
10. Change the RAM configuration to `16384 MB` (16GB) and the CPU configuration to `8 CPUs`.
    1. These settings allow Zoom Node to run four (4) modules.

{% hint style="info" %}
You can adjust these values, but adjustments may affect the capacity and performance of Zoom Node. If you are only running a single module on Zoom Node, you can adjust the RAM setting to 6GB and CPUs to 3 as the absolute minimum values.
{% endhint %}

11. Enter a name for the Node.
12. **Click Customize configuration before install**.

{% hint style="danger" %}
If you don't perform this configuration, the Node will not boot. Additional settings must be modified.
{% endhint %}

13. Make sure the network device is set to **Bridged Ethernet** and not NAT.

{% hint style="info" %}
Deploying a Zoom Node behind a NAT on KVM will prevent clients from communicating with it.
{% endhint %}

14. When the **VM details** pane opens, change the **Chipset** to **Q35**.
15. Change the **Firmware** to **UEFI**.

{% hint style="warning" %}
Zoom Node will not boot without the UEFI setting.
{% endhint %}

16. Click **Apply**.
17. Click **Begin Installation** at the top of the ribbon menu to deploy the VM.

The VM will start and begin booting up. Once the original VM has booted, we'll know that the template we created is officially usable.

### <mark style="color:blue;">Nutanix AHV deployments</mark>

Zoom Node can run as a virtual machine (VM) on Nutanix AHV. Zoom Node deploys to a data center to operate Zoom Hybrid Services, also called Service Modules, such as Meetings Hybrid, Recording Hybrid, Chat Hybrid, and Phone Local Survivability.

This section covers the installation of the Zoom Node OS VM to Nutanix AHV versions 6.8.1 to 7.0.1.

#### General Hypervisor and Virtual Machine Requirements

The [Zoom Node Infrastructure Prerequisites](/advanced-enterprise-services/zoom-node/zoom-node-deployment-field-guide/zoom-node-infrastructure-prerequisites.md)page provides the hardware and software prerequisites necessary for deployment.

#### Zoom Node Deployment

Deploying Zoom Node requires downloading an image, importing the image to AHV, and creating a VM.

**Download the Zoom Node image file**

To download the image file:

1. Log in to the [Zoom admin web portal](https://zoom.us/).
2. Download the **Zoom Node QCOW2** image from the Zoom admin portal by selecting **Node Management > Modules > Node > Add Node**.\\

   <figure><img src="/files/sL5ziKIlsy2cLJygjUC8" alt=""><figcaption></figcaption></figure>
3. Download the **QCOW2 image** by clicking the **Download** button.

{% hint style="info" %}
AHV can import either the QCOW2 or the .ova/VMDK image. You can use either, but Zoom suggests using the QCOW2 image. That format can be uploaded natively without having to unarchive an .ova format to extract the VMDK.
{% endhint %}

**Import the Zoom Node image into AHV**

1. Log in to Nutanix AHV console by browsing to `https://<cluster hostname>:9440`.
2. Click the **Home** drop-down menu and select **Settings** from the list.

<figure><img src="/files/plCD5BPw9L7ZO16kszdL" alt="" width="563"><figcaption></figcaption></figure>

3. Review the **Settings** page.

<figure><img src="/files/P8GEp4QhJsJRV3UVSGSv" alt=""><figcaption></figcaption></figure>

4. From the left-hand side of the screen, click **Image Configuration**. The disk image upload dialogue appears.

<figure><img src="/files/qtJtaY80jG8eKdTtRlWc" alt="" width="563"><figcaption></figcaption></figure>

5. Click the + Upload Image button.

<figure><img src="/files/VDpZ0Hu9gbP41LOcnZQh" alt="" width="563"><figcaption></figcaption></figure>

6. Enter your preferred information in the Create Image dialogue box text fields.
   1. Annotation is an optional field.
   2. Click the **Image Type** drop down and select **DISK**.
   3. Click the **Storage Container** drop down and select the appropriate option for your environment.
7. Click the **Upload a file** radio button and then click **Browse...**.
8. Select the QCOW2 image you previously downloaded.
9. Click **Save** to begin uploading the image.

<figure><img src="/files/dAV0NNEN88LuWuUAE3GC" alt=""><figcaption></figcaption></figure>

The upload progress will appear in the blue ribbon.

{% hint style="danger" %}
Keep the current browser window or tab open to ensure the upload finishes. Do not attempt to navigate elsewhere in the AHV interface while the upload is active.
{% endhint %}

Once the upload has completed, the image update process will run. Click the blinking job status icon in the ribbon menu to watch the progress.

<figure><img src="/files/f966bE2a7wHlV4qke5AE" alt=""><figcaption></figcaption></figure>

It can take several minutes for the import process to complete. Once it is done, the image appears on the list in an **ACTIVE** state:

<figure><img src="/files/xKPFg3FfbOxAu39AnRYj" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The Zoom Node disk image is approximately 200GB once imported.
{% endhint %}

**Create the Zoom Node Virtual Machine**

Next, you'll create the virtual machine. To create the VM:

1. Click the **Settings** drop down and select **VM**.

   <figure><img src="/files/WuxsTt5YL8tkeSzs6bGl" alt="" width="375"><figcaption></figcaption></figure>
2. From the VM screen, click **+ Create VM** on the right-hand side side of the screen.

   <figure><img src="/files/rg5BdHsqkgGQsoV4GniH" alt=""><figcaption></figcaption></figure>
3. Enter a **Name**, **Description** (optional), and select the appropriate **Timezone**.
4. Under **Compute Details**, enter your compute specifications.\\

   <figure><img src="/files/iP1rerVMmBNzBqIcwZ8q" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="warning" %}
As shown above, Zoom Node requires 8 vCPU cores for a production deployment. Zoom recommends matching the socket count of the physical server when setting vCPU settings. The following setting descriptions meet standard deployment requirements:

* Set the **vCPU(s)** field to match the number of sockets in the server that Nutanix AHV is running on. For a typical two-socket server, you'd set this value to **2**.
* Set the **Number Of Cores Per vCPU** to **4**, which works out to **8 vCPUs**.
* Set the **Memory** (RAM) to **16** GB.
* Under **Boot Configuration**, select **UEFI**.
  {% endhint %}

{% hint style="danger" %}
Zoom Node will NOT boot unless UEFI is selected.
{% endhint %}

5. A warning dialogue appears. Click **OK** to acknowledge it.\\

   <figure><img src="/files/u5iREhUNMIV9mF01ffzX" alt="" width="525"><figcaption></figcaption></figure>
6. Scroll down to the **Disks** section.\\

   <figure><img src="/files/9kGYQ1mxvPUIUMu0bFAB" alt="" width="563"><figcaption></figcaption></figure>
7. Click **+ Add New Disk** to create a disk for Zoom Node to run on.\\

   <figure><img src="/files/UxqAK2s8nIFWZLCLjxf7" alt="" width="375"><figcaption></figcaption></figure>
8. Under the **Type** drop down, select **DISK**.
9. Under the **Operation** drop down, select **Clone from Image Service**.\\

   <figure><img src="/files/VK4bkwKe8nRu8tbP8SDA" alt="" width="563"><figcaption></figcaption></figure>
10. Under the **Image** drop down, select the name of the image you created when importing the Zoom Node disk earlier.
11. Click **Add**.
12. Scroll down to the **Network Adapters (NIC)** section.\\

    <figure><img src="/files/Kxmr8KVSTAkaQHQkVblz" alt="" width="563"><figcaption></figcaption></figure>
13. Click + Add New NIC.\\

    <figure><img src="/files/yp89zInJe1kCJxK1C948" alt="" width="563"><figcaption></figcaption></figure>
14. Under the **Subnet Name** drop down, select the option with direct IP access.

{% hint style="info" %}
As a reminder, hypervisor NAT is not supported.
{% endhint %}

15. Under **Network Connection State**, select **Connected**.
16. Click **Add**.\\

    <figure><img src="/files/Q6GaPhzTpFW342gxyWHp" alt="" width="375"><figcaption></figcaption></figure>
17. Click **Save** to create the VM.

**Power the new Zoom Node VM on**

The new Node will appear in the list of VMs. You can choose the Table view to make it easier to see a list of VMs.

<figure><img src="/files/3bT53u21qxsap66EdbGZ" alt=""><figcaption></figcaption></figure>

Right-click on the new VM you've created and select **Power on**.

<figure><img src="/files/RrosCEHqXz5QjnnxvutA" alt=""><figcaption></figcaption></figure>

The VM will begin to boot after a few seconds.

Right-click the VM again and select **Launch Console** to interact with the VM.

{% hint style="info" %}
A pop-up window will launch. If you don't see the window, you may need to allow pop-ups for AHV within your browser settings.
{% endhint %}

Once launched, the deployment of Zoom Node to Nutanix AHV is complete.

#### Managing the Zoom Node

For more information on managing your activated Zoom Nodes, see the Zoom Support article [Managing Zoom Node servers and modules](https://support.zoom.com/hc/en/article?id=zm_kb\&sysparm_article=KB0063730).

### <mark style="color:blue;">AWS EC2 deployments</mark>

{% hint style="info" %}
The Zoom Node AMI is not yet available in the Zoom App Marketplace. Currently, an AMI needs to be created manually. This process needs to be done one time for the AWS account.

You may skip this section if your account already has the Zoom Node AMI created and you are just looking to deploy a new Zoom Node instance.
{% endhint %}

#### Prerequisites

The [Zoom Node Infrastructure Prerequisites](/advanced-enterprise-services/zoom-node/zoom-node-deployment-field-guide/zoom-node-infrastructure-prerequisites.md)page provides the hardware and software prerequisites necessary for deployment.

#### Downloading the OVA image

1. Download the latest Zoom Node OVA image from the Zoom admin web portal by browsing to **Admin portal > Zoom Node > Modules > Nodes > Add Nodes**.

<figure><img src="/files/uhinX88m4jrdeDVZhzIg" alt=""><figcaption></figcaption></figure>

2. Download the VMWare OVA image and note the name. The file is about 5GB and may take some time to download.
3. Unarchive the OVA file into a working directory. (On Windows, use PowerShell for access to the tar command.)
   1. Type: `tar xvf <Zoom Node>.ova`
   2. The output will look similar to this:\\

      <figure><img src="/files/zNO0C7cac00nme0m0shV" alt=""><figcaption></figcaption></figure>
   3. Note the name of the .vmdk file. In this example, it's: `ubuntu22-zoomcommon-build-go-20240418014859-disk-0.vmdk`.
4. Upload the .vmdk file to an S3 bucket. Use the AWS Web Interface, or preferably the AWS CLI to ensure .vmdk naming consistency.
   1. Enter the following command to copy the file to AWS S3: `aws s3 cp ubuntu22-zoomcommon-build-go-20240418014859-disk-0.vmdk s3:///node3.4.vmdk`.
   2. Depending on the internet connection speed, the upload can take from a few minutes to several hours. The file size is approximately 5 GB.\\

      <figure><img src="/files/l2v6GJP3qgKplYGT60SF" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The preceding command will rename the file in S3 to a more friendly `node3.4.vmdk` to make it easier to work with as it's imported.

For example, if the S3 Bucket is called `vhd-import-bucket` the command would be: `aws s3 cp ubuntu22-zoomcommon-build-go-20240418014859-disk-0.vmdk s3://vhd-import-bucket/node3.4.vmdk`.
{% endhint %}

5. Prepare a JSON file with the following details describing the disk image you are importing:

```json
 {
    "Description": "Zoom Node 3.4 VMDK",
    "Format": "vmdk",
    "UserBucket": {
        "S3Bucket": "vhd-import-bucket",
        "S3Key": "node3.4.vmdk"
    }
  }
```

{% hint style="info" %}
This code identifies your import of the `node3.4.vmdk` image, currently stored in an S3 bucket, as Zoom Node version 3.4.
{% endhint %}

6. Import the Zoom Node .vmdk image as a **Snapshot**.

{% hint style="warning" %}
You must import the disk as a Snapshot and **not** an Image.
{% endhint %}

7. Enter the following command: `aws ec2 import-snapshot --disk-container file://.json`.
8. (Optional) If the JSON file is named `node.json`, enter the following command: `aws ec2 import-snapshot --disk-container file://node.json`.
9. Review the `StatusMessage:` field for the “pending” status as the import begins.\\

   <figure><img src="/files/isGnZgpc7Z0or8fhwwbG" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Importing may take 20 minutes or more to complete.
{% endhint %}

10. Review the CLI output for the `ImportTaskId` value.
    1. In the example above, the `ImportTaskId` is `import-snap-f8d845596565b0c3t`. This value periodically checks the status of the job.
    2. Enter the following command: `aws ec2 describe-import-snapshot-tasks --import-task-ids <ImportTaskId>` where `ImportTaskId` is the unique value determined in the step above.
    3. The following output should appear, with your `ImportTaskId` value populated:\\

       <figure><img src="/files/Ry97ucNA1l2c9X9DESoX" alt=""><figcaption></figcaption></figure>
    4. Note that the current status of the job is “downloading/converting”, meaning the job is still processing the file. The field `Progress: <##>,` shows the completion percentage. The above example shows the value `19` for 19% complete.
    5. Review the `Status:` field to verify job completion:\\

       <figure><img src="/files/60r4Ea47JYAtUV58jG8k" alt=""><figcaption></figcaption></figure>

#### Convert the Snapshot to an Amazon Machine Image (AMI)

1. Log in to the AWS Console EC2 dashboard.\\

   <figure><img src="/files/0SNq5m9wEWA70sD6QPKG" alt=""><figcaption></figcaption></figure>
2. On the left-hand side of the screen under the **Elastic Block Store** drop down, click **Snapshots**.\\

   <figure><img src="/files/O9evNwI0SCRp0Vr14PEL" alt=""><figcaption></figcaption></figure>
3. Click the **Snapshot ID link** to see its details.\\

   <figure><img src="/files/c2rVAc1MWcuRdDHAT78M" alt=""><figcaption></figcaption></figure>
4. Click the **Actions** drop-down button in the top right-hand corner of the screen and select **Create image from snapshot**.
5. The **Image settings** window appears.
6. Enter an **Image name** for the AMI.
   1. Example: **Zoom Node 3.4 AMI**.
7. (Optional) Enter a description.\\

   <figure><img src="/files/6v3dVOzm0DTQs3gSLR6f" alt=""><figcaption></figcaption></figure>
8. Scroll down the window to see additional settings.
9. Confirm you see the assigned 189 GB disk volume under **Size (GiB)**.\\

   <figure><img src="/files/Rsf09mYGSSakxSkwSbUB" alt=""><figcaption></figcaption></figure>
10. Under the **Boot mode** drop down, select **UEFI**.

#### Deploying Zoom Node Instances on AWS EC2

1. Log in to the AWS Console EC2 dashboard.\\

   <figure><img src="/files/0SNq5m9wEWA70sD6QPKG" alt=""><figcaption></figcaption></figure>
2. On the left-hand side of the screen, under the **Instances** drop down, click **Instances**.
3. Create a new Instance using the Zoom Node AMI.
4. Enter a name for the instance.

<figure><img src="/files/J9W0YkJS2q1dL0XVHVu2" alt="" width="563"><figcaption></figcaption></figure>

5. Under the **Application and OS Images (Amazon Machine Image)** section, click the **My AMIs** tab.
6. Search for the Zoom Node AMI you just created and named.\\

   <figure><img src="/files/7DPLGWQsQNJNq0NTMZjZ" alt="" width="563"><figcaption></figcaption></figure>
7. Click the AMI you created to set various parameters.
8. Under the **Instance type** section, click the **Instance type** drop-down list and select **t3.medium**.

<figure><img src="/files/i6vQN2umTCyhMoOUpVkp" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
For production deployments, Zoom Node requires 8vCPU and 16GB RAM. In contrast, lab environments can operate with 2vCPU and 4GB RAM, with a t3.medium instance being recommended. If Zoom Meetings Hybrid is running on the system, a t3.large instance will likely be necessary to support more than a few users in a meeting.
{% endhint %}

9. Under the **Key pair (login)** section, click the **Key pair name** drop-down list and select **Proceed without a key pair (Not recommended)**.

   1. Omitting a key pair is required because SSH is not enabled on Zoom Node for console access.

   <figure><img src="/files/9U6ZhA53xpHOeeKxejlt" alt=""><figcaption></figcaption></figure>
10. Under Network settings, configure the following options:
    1. Under **VPC - required**, choose a VPC that allows your Zoom Workplace apps direct L3 routed access.
    2. Under **Subnet**, choose the subnet where this VM will operate.\\

       <figure><img src="/files/vImn2hkZbjybpfotzGhO" alt="" width="563"><figcaption></figcaption></figure>
    3. **Zoom Node requires outbound communications to the Zoom cloud**. You must provide a public IP address.
    4. Select **Enable** from the **Auto-assign public IP** field.
    5. Create a **Security Group** allowing inbound access from the Zoom Workplace app on the required port.
    6. Use the documented firewall rules in the Zoom support article [Zoom Node Management server firewall rules](https://support.zoom.com/hc/en/article?id=zm_kb\&sysparm_article=KB0066766).\\

       <figure><img src="/files/hdPjvUGdrwjH9glUrAgb" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
Inbound internet access is not required for Zoom Node, except when direct media access from external sources is enabled (an optional deployment for Meeting Connector or providing external user access for Zoom Meetings Hybrid - Private Meetings).
{% endhint %}

11. Click **Advanced Details**.
12. Click the **Metadata version** drop-down list and select **V2 only (token required)**.\\

    <figure><img src="/files/td3k43JyAzDrz6iYr2cC" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
You must set the metadata version to V2, otherwise the deployment will fail.
{% endhint %}

#### (Optional) Pre-Configure Zoom Node

Zoom Node OS settings such as network settings, the hostname, local passwords, and 16-digit registration codes can be automatically configured with the **User data -&#x20;*****optional*** section within AWS EC2.

When Zoom Node boots, it will pull this pre-configured information from AWS EC2 (IDMSv2 server) and auto-configure the Node as shown in the following image:

<figure><img src="/files/RWkeUuovClJJ4td7Yqt0" alt=""><figcaption></figcaption></figure>

Use the code below to create a new user data file:

```yaml
#custom-config
hostname: zn-ec2
password: ZoomNodepassword1234
registration_code: ABCD1234DEFG5678
network:
  ethernets:
    ens:
      addresses:
        - 10.15.1.150/24
        - 10.15.1.151/24
        - 10.15.1.152/24
      gateway: 10.15.1.1
      nameservers:
        addresses:
          - 1.1.1.1
```

Once you've uploaded the user data file to AWS EC2, deploy the instance by clicking **Launch instance**.

<figure><img src="/files/UqW7GJaNPqPip6xPtlnl" alt=""><figcaption></figcaption></figure>

#### Reviewing a Deployed Instance

<div align="center"><figure><img src="/files/RyOIwV2gdj2GTxGLb4pE" alt="" width="563"><figcaption></figcaption></figure></div>

Click the **instance ID link** (i-06e4592fd2d91ef3f as shown in the above image) to find the **internal IP address** assigned to the Node.

<figure><img src="/files/EqsjNlIEg7oPOo8AzGPG" alt=""><figcaption></figcaption></figure>

It takes a few minutes for the Node to boot and start a local web GUI.

Within the first 10 minutes of booting the instance, open a web browser and enter the **Private IPv4 addresses** listed (`10.10.130.223` in the above image).

For example: `https://<10.10.130.223>:8443`.

Accept the invalid certificate warning that appears. The Zoom Node Local Admin Portal appears and prompts you for a password.

<figure><img src="/files/m2Xn79LMzYk8jpMdeuTP" alt="" width="563"><figcaption></figcaption></figure>

Click the **Set Password** link to configure an administrator password.

The username is always `zoom-setup`.

{% hint style="info" %}
The "Set Password" link is only visible for the first 10 minutes after the VM boots. If it's not visible, reboot the VM to make the option available again.
{% endhint %}

Now that deployment is complete, you may continue configuration by following the instructions beginning in the [Zoom Node Post-Deployment Configuration and Management](/advanced-enterprise-services/zoom-node/zoom-node-deployment-field-guide/zoom-node-post-deployment-configuration-and-management.md#network-configuration)steps of the [Zoom Node Post-Deployment Configuration and Management](/advanced-enterprise-services/zoom-node/zoom-node-deployment-field-guide/zoom-node-post-deployment-configuration-and-management.md) page.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://library.zoom.com/advanced-enterprise-services/zoom-node/zoom-node-deployment-field-guide/zoom-node-hypervisor-specific-deployments.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
