Creating VM instances in Azure for your Pexip nodes

To deploy a Pexip Infinity Management Node or a Conferencing Node within Azure you must create an Azure VM instance and then use that instance to host that Pexip node.

This section describes how to create a VM instance from a prepared disk image. You must create a separate VM instance for each Pexip node.

Note that you must deploy the Management Node in your Pexip Infinity platform (either on-premises or in Azure) before deploying any Conferencing Nodes. You must also have prepared your Azure environment.

Creating a VM instance

You follow the same basic procedure for creating a VM instance in Azure regardless of whether you are creating the Management Node or a Conferencing Node. The main differences are the VM Image Resource ID and VM size that you need to use.

To create the VM instance:

  1. Create a new resource group to hold the instance.

    We recommend that each VM instance (i.e. the Management Node and each Conferencing Node) is deployed in its own resource group.

    1. Go to Resource Groups and select + Add.
    2. Select your Subscription and enter your Resource group name, such as pexmgr for the Management Node, or pexconf01, pexconf02 etc. for a Conferencing Node.
    3. Select your Region, and then select Review + Create.
    4. Resource Group for the Management Node

      Resource Group for a Conferencing Node

    5. On the Summary page, select Create.

    The equivalent example PowerShell commands are:

    New-AzResourceGroup -Name pexmgr -Location <region name>

    New-AzResourceGroup -Name pexconf01 -Location <region name>

  2. Deploy the instance into the new resource group. This procedure describes how to do this via the Azure portal using an ARM template provided by Pexip:

    1. Decide which ARM template to use from the table below, and then use the "launch in Azure Portal" link to launch the template (after signing in to Azure if necessary).
    2. Enter the Basics by selecting your Subscription, Resource group and Location (region).
    3. Complete the Settings (these are based on the template's parameters):

      Name Description
      Vm Image ID

      The Resource ID of the Azure image (which is in the style /subscriptions/mysubscriptionid/resourceGroups/myressourcegroup/providers/Microsoft.Compute/images/myimage).

      This resource ID can be obtained from the Azure portal by selecting your Resource Group used for shared resources, and then selecting either your Management Node or Conferencing Node image, and then copying the displayed Resource ID.

      Management Node image resource ID

      Conferencing Node image resource ID

      Dns Domain Name Label

      The domain name label (i.e. hostname) for the Virtual Machine.

      When deploying an instance with a public IP address, this label must be the host part only — the name must not contain any periods.

      Ip Address

      The statically-assigned private IP address for the Virtual Machine.

      This must be within the IP range of your Virtual Network. Note that the first and last IP addresses of each subnet are reserved for protocol conformance, along with the x.x.x.1-x.x.x.3 addresses of each subnet, which are used for Azure services.

      Admin Credential

      For password-based authentication templates, this is the password for logging into the Virtual Machine. Note that Azure requires a strong password (such as a mix of upper case, lower case and numeric characters).

      For SSH key-based templates, this is the public SSH key for logging into the Virtual Machine (e.g. ssh-rsa AAA.... user@host).

      Vm Size

      The size of the Virtual Machine (typically F4s v2 for a Management Node or F8s v2 for a Transcoding Conferencing Node). You can change the Size later from within the Azure portal (Virtual Machine settings), if required. See Recommended instance types and call capacity guidelines for more information.

      Azure regularly updates the instance types that can be deployed in each region. Therefore, you may receive a "The requested size for resource <name> is currently not available in location <region> zones" style error when deploying a node. See Troubleshooting instance size errors for help in resolving these errors.

      Diagnostics Storage Account Name The name of the storage account to use for boot diagnostics. This can be the same storage account that is used to hold the prepared disk images. Note that this storage account cannot use Premium storage.
      Network Name The name of the Virtual Network to connect to.
      Network Subnet Name The name of the Virtual Network subnet in which to place the Virtual Machine.
      Network Security Group Name The name of the Network Security Group to apply to the Virtual Machine.
      Network Resource Group The name of the Resource Group containing the Virtual Network and Network Security Group.
    4. Review and confirm the Terms and Conditions.
    5. Select Purchase to deploy the instance.

    Management Node VM deployment

    Conferencing Node VM deployment

  3. It can sometimes take several minutes for your instance to be created and start running. You can use the Azure portal to monitor the status of your new instance.

    If the instance deployment fails, review the Azure event diagnostics to help identify the problem.

  4. You can now complete the deployment of the Pexip node.

    See either Deploying a Management Node in Azure or Deploying a Conferencing Node in Azure as appropriate.

To deploy a template via PowerShell commands, follow this model:

$Credential=ConvertTo-SecureString <password/key> –asplaintext –force

New-AzResourceGroupDeployment -ResourceGroupName <resource group name> -TemplateUri <template URL> -vmImageID "<VM disk image Resource ID>" -dnsDomainNameLabel pexmgr -ipAddress "<private IP address>" -adminCredential $Credential -vmSize <VM size> -diagnosticsStorageAccountName <storage account name> -networkName <virtual network name> -networkSubnetName <Virtual Network subnet name> -networkSecurityGroupName <security group name> -networkResourceGroup <resource group name>

For example, for a Management Node using the template for password-based authentication and a public IP address:

$Credential=ConvertTo-SecureString Abcd_2468 –asplaintext –force

New-AzResourceGroupDeployment -ResourceGroupName pexmgr -TemplateUri https://pexipas.blob.core.windows.net/templates/20202402/virtual-machine-password-static-public-ip.json -vmImageID "/subscriptions/1bc-etc-9yz/resourceGroups/pexip_resources/providers/Microsoft.Compute/images/pexip-infinity-22-3-0-50323-0-0-management-node-image" -dnsDomainNameLabel pexmgr -ipAddress "10.0.0.5" -adminCredential $Credential -vmSize Standard_F4s_v2 -diagnosticsStorageAccountName pexipastore -networkName pexip_virtual_network -networkSubnetName default -networkSecurityGroupName PexSecGroup -networkResourceGroup pexip_resources

Azure Resource Manager (ARM) templates for deploying a VM instance

Pexip provides ARM templates which may be used to deploy a VM instance into a resource group (as described above). These templates may be used from PowerShell or the Azure CLI. Alternatively, you can use the templates to deploy an instance via the Azure Portal.

The templates allow you to choose whether to deploy an instance with either password-based or SSH-key based authentication, and either with or without a public address. Every template enables boot diagnostics for the Virtual Machine instance.

When you deploy this template, Microsoft is able to identify the installation of Pexip software with the Azure resources that are deployed. Microsoft is able to correlate the Azure resources that are used to support the software. Microsoft collects this information to provide the best experiences with their products and to operate their business. The data is collected and governed by Microsoft's privacy policies, which can be found at https://www.microsoft.com/trustcenter. Please contact your Pexip authorized support representative if you do not want to share with Microsoft the telemetry of the VMs that are running Pexip software.

Pick the template most suitable for your needs. Every template can be used to launch either a Management Node or a Conferencing Node instance.

Name Authentication Public IP address Template URL Resources created
virtual-machine-password-static-public-ip Password based Yes (static)

https://pexipas.blob.core.windows.net/templates/20202402/virtual-machine-password-static-public-ip.json

(launch in Azure Portal)

  • Public IP address
  • Network interface
  • Virtual Machine
virtual-machine-password-no-public-ip Password based No

https://pexipas.blob.core.windows.net/templates/20202402/virtual-machine-password-no-public-ip.json

(launch in Azure Portal)

  • Network interface
  • Virtual Machine
virtual-machine-sshkey-static-public-ip SSH key based Yes (static)

https://pexipas.blob.core.windows.net/templates/20202402/virtual-machine-sshkey-static-public-ip.json

(launch in Azure Portal)

  • Public IP address
  • Network interface
  • Virtual Machine
virtual-machine-sshkey-no-public-ip SSH key based No

https://pexipas.blob.core.windows.net/templates/20202402/virtual-machine-sshkey-no-public-ip.json

(launch in Azure Portal)

  • Network interface
  • Virtual Machine

Previously, the ARM templates and guidelines provided by Pexip for deploying VM instances used unmanaged disks in a storage account with standard performance. The current ARM templates use managed disks. VMs deployed with a mix of managed and unmanaged disks can co-exist in your Pexip Infinity deployment, however you may want to convert any previously deployed VMs to use managed disks with premium performance. For more information see Converting VM instances to managed disks and to premium performance.

Troubleshooting instance size errors

Azure regularly updates the instance types that can be deployed in each region. Therefore, you may receive a "The requested size for resource <name> is currently not available in location <region> zones" style error when deploying a node.

To resolve these types of errors you can edit the Pexip ARM template to add in a supported instance type for that region:

  1. Obtain a list of available compute resources for your region:

    1. Run a PowerShell command in the format Get-AzComputeResourceSku | where {$_.Locations -icontains "<region name>"}

      For example: Get-AzComputeResourceSku | where {$_.Locations -icontains "uksouth"}

      This will output a list of resources, including VirtualMachines, for example:

    2. Identify a resource name that is not tagged as "NotAvailableForSubscription" in your region.
  2. Edit the Pexip ARM template and add in the resource that you have identified above:

    1. Start to deploy the instance, using the "launch in Azure Portal" link to launch the template as usual.
    2. Select Edit template.

    3. In the vmSize section, add in the name of resource that you have identified above.

      Ensure that you maintain the correct style and structure of the list:

    4. Select Save.

    You can now continue to deploy your node.

  3. Complete the Settings as described above, but for Vm Size select the name of the resource you added to the template.

    You can change the Size later from within the Azure portal (Virtual Machine settings), if required.