Create Citrix Provisioning catalogs in DaaS (Preview)

Currently, Citrix provides two provisioning solutions for creating VMs, Citrix Provisioning and Machine Creation Services (MCS).

To create a Citrix Provisioning catalog, you had to use the Citrix Virtual Apps and Desktops Setup Wizard. With this feature, you can now create a Citrix Provisioning catalog by using the Full Configuration user interface and PowerShell. This implementation provides you the following advantages:

  • A single unified console to manage both MCS and Citrix Provisioning catalogs.
  • Have new features for Citrix Provisioning catalogs, such as, identity management solution, on-demand provisioning and so on.

Currently, this feature is available only for Azure workloads.

Note:

In this preview, many features aren’t supported. More hypervisors and features are to be supported later.

This article explains how to create an Azure Citrix Provisioning catalog in DaaS using the Full Configuration interface and PowerShell commands.

Considerations

  • Classic AD machine identity type is supported in this preview. Other identity types are to be supported later.
  • Write-back cache is formatted after the first start of VMs.
  • Image management is done using the existing Citrix Provisioning console.
  • Only Boot Device Manager (BDM) is supported.
  • While provisioning Citrix Provisioning target VMs, select the site for the target VMs. Ensure that the site is registered.

Limitations

  • In this preview, the customer-managed Delivery Controller is not supported.
  • Gen 2 VMs are only supported.
  • You can create a catalog using a machine profile. Do not enable hibernation in the machine profile input.
  • You cannot set the following custom properties while creating the catalog:

    • StorageType
    • OsType
    • MachinesPerStorageAccount
    • StorageAccountsPerResourceGroup
    • UseSharedImageGallery
    • SharedImageGalleryReplicaRatio
    • SharedImageGalleryReplicaMaximum
    • UseEphemeralOsDisk
    • UseManagedDisks
    • StorageTypeAtShutdown

Requirements

  • Upgrade to Citrix Provisioning version 2305 or later.
  • Update the vDisks to run the required version of the VDA (2305 or later). See Updating vDisks.
  • On the Full Configuration interface > Preview features, enable Creating Citrix Provisioning catalogs in DaaS using the toggle button. This action enables the Citrix DaaS McsPVSProvScheme feature flag to provision Citrix Provisioning VMs on Azure.
  • Enable the following Citrix Provisioning feature flag on every Citrix Provisioning server and console system before running the Configuration Wizard. This action enables the MCS Provisioning feature in the registry:

     HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ProvisioningServices\Features]
    "CCMessaging"=dword:00000001
    <!--NeedCopy-->
    

Key steps

  • Set up Citrix Provisioning on Azure
  • Register Citrix Provisioning servers to Citrix Cloud
  • Create or update vDisk
  • Add a connection to Azure and specify its network resources
  • Create a Citrix Provisioning catalog in DaaS
  • Check the collections in the Citrix Provisioning Console under Sites

Set up Citrix Provisioning on Azure

To set up Azure provisioning, begin by configuring your provisioning server and other infrastructure on Azure. For more information, see Set up Citrix Provisioning on Azure.

Register Citrix Provisioning server to Citrix Cloud

Run the Configuration Wizard to register the Citrix Provisioning servers in a farm to Citrix Cloud.

When joining an existing farm, identify the site where this provisioning server is a member.

For more information on registering Citrix Provisioning server to Citrix Cloud, see Configuration wizard settings.

Ensure to select a resource location for the target site when using MCS to provision Citrix Provisioning targets. You can select No resource location from the options if:

  • you do not use MCS to provision Citrix Provisioning targets.
  • you use MCS to provision Citrix Provisioning targets, however, not for the specified target site.

For more information on selecting a resource location, see Set up resource locations.

Create or update vDisk

As part of creating a catalog, you must be able to create a vDisk or update vDisks to run the required version of the VDA (2305 or later). See Creating vDisks or Updating vDisks.

Add a connection to Azure and specify its network resources

Configuring a connection includes selecting the connection type from among the supported hypervisors and cloud services and the storage and network that you select from the resources for that connection. For more information, see Connection to Microsoft Azure.

Create a Citrix Provisioning catalog using the Full Configuration interface

The workflow for creating the catalog is similar to the MCS workflow. However, now Studio creates and uploads a BDM boot disk to the storage. It then uses this disk as the OS disk, replicating it to machines as they are created.

To create a Citrix Provisioning catalog using the Full configuration interface:

  1. Sign in to Citrix Cloud. In the upper left menu, select My Services > DaaS.
  2. From Manage > Full Configuration, select Machine Catalogs in the left pane.
  3. Select Create Machine Catalog. The catalog creation wizard opens.
  4. On the Machine Type page, select a machine type for this catalog, such as Multi-session OS or Single-session OS.
  5. On the Machine Management page, select the settings as follows:

    1. Select Machines that are power managed (for example, virtual machines or blade PCs).
    2. Select Citrix provisioning technology. Then, select Citrix Provisioning Services (PVS).
    3. In the Resources field, select an Azure network resource for this catalog.
  6. (Viewable only to single-session-OS catalogs) On the Desktop Experience page, select the random or static desktop experience as needed.
  7. On the Target Device page, select the following:

    1. Select the farm and site for the machines to be provisioned.

      Note:

      The site field shows only sites registered with the Citrix Cloud.

    2. Select the vDisk to use with the provisioned machines.
    3. Select a machine profile for the provisioned machines.
  8. On the Storage and License Types page, select the storage to use for this catalog and select the Windows volume licenses to provision VMs in Azure.
  9. On the Virtual Machines page, select the count of VMs, VM size, and availability zone.
  10. On the NICs page, add the NICs you want the VMs to use.
  11. On the Disk Settings page, select the storage type and size of the write-back cache disk.
  12. On the Resource Group page, select the resource group to provision VMs.
  13. On the Machine Identities page, select Create new Active directory accounts. Specify an account naming scheme.
  14. On the Domain Credentials page, click Enter credentials. Enter your domain credentials to perform account operations in the target Active directory domain.
  15. On the Summary page, enter a name for the machine catalog.

A Citrix Provisioning machine catalog is now created.

Check the collections in the Citrix Provisioning Console under Sites

After the Citrix Provisioning catalog is created, in the Citrix Provisioning console, you can see two types of collections under Site in the Citrix Provisioning console:

  • PVS Provisioned Collections: Collection of all PVS-provisioned devices in the site
  • MCS Provisioned Collections: Collection of all MCS-provisioned devices in the site

In the MCS Provisioned Collections, you can see Citrix Provisioning catalogs.

Citrix Provisioning PowerShell SDK to get site and vDisk information

  • To get the list of Citrix Provisioning sites where each site lists the Citrix Provisioning servers that are in that site, run the PowerShell command Get-HypPvsSite. For example:

     Get-HypPvsSite -SiteId 00000000-0000-0000-0000-000000000000 -SiteName "exampleSite" -FarmId 00000000-0000-0000-0000-000000000000 -FarmName "exampleFarm" -ResourceLocation 00000000-0000-0000-0000-000000000000
     <!--NeedCopy-->
    

    Note:

    All the parameters are optional in Get-HypPvsSite command. If you don’t enter any parameters, you get the list of all the registered sites.

  • To get a list of vDisks where each vDisk lists the site that it can be used with that vDisk, run the PowerShell command Get-HypPvsDiskInfo. For example, you can run one of the following:

    • Get-HypPvsDiskInfo -FarmId 00000000-0000-0000-0000-000000000000
    • Get-HypPvsDiskInfo -SiteId 00000000-0000-0000-0000-000000000000 -StoreId 00000000-0000-0000-0000-000000000000
    • Get-HypPvsDiskInfo -SiteId 00000000-0000-0000-0000-000000000000 -DiskLocatorId 00000000-0000-0000-0000-000000000000

    Note:

    The command queries FarmId from registered sites using SiteId when no FarmId is given.

Create a Citrix Provisioning catalog using PowerShell commands

  1. If you are not on the Citrix Provisioning server or on a system that has the Citrix Provisioning console installed, then download and install the latest Remote PowerShell SDK. For more information, see Install and use the Remote PowerShell SDK.
  2. Open the PowerShell window.
  3. Run the PowerShell commands to create a broker catalog and identity pool.
  4. Run the New-ProvScheme command to create the catalog. For example:

    New-ProvScheme -AdminAddress "localhost:190xx" -CleanOnBoot `
    -ProvisioningSchemeType PVS `
    -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
    <Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"true`" />
    <Property xsi:type=`"StringProperty`" Name=`"OsType`" Value=`"Windows`" />
    <Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Premium_LRS`" />
    <Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"true`" />
    <Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"false`" />
    <Property xsi:type=`"StringProperty`" Name=`"PersistVm`" Value=`"false`" />
    <Property xsi:type=`"StringProperty`" Name=`"WBCDiskStorageType`" Value=`"Premium_LRS`" />
    <Property xsi:type=`"StringProperty`" Name=`"UseTempDiskForWBC`" Value=`"false`" />
    <Property xsi:type=`"StringProperty`" Name=`"ResourceGroups`" Value=`"acbdpvs`" />
    <Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Server`" />
    <Property xsi:type=`"StringProperty`" Name=`"Zones`" Value=`"1`" />
    </CustomProperties>" `
    -HostingUnitName "AzueRes"
    -IdentityPoolName $catName `
    -InitialBatchSizeHint 1 -LoggingId "854xxxxx-2xxx-42e0-axxx-8c6xxx406xxx" `
    -MachineProfile "XDHyp:\HostingUnits\AzueRes\machineprofile.folder\abcdpvs.resourcegroup\abvda.vm" `
    -NetworkMapping @{"0"="XDHyp:\HostingUnits\AzueRes\\virtualprivatecloud.folder\East US.region\virtualprivatecloud.folder\abcdpvs.resourcegroup\fbgv-vnet.virtualprivatecloud\default.network"} `
    -ProvisioningSchemeName $catName `
    -ServiceOffering "XDHyp:\HostingUnits\AzueRes\serviceoffering.folder\Standard_D2s_v3.serviceoffering" `
    -UseWriteBackCache -WriteBackCacheDiskSize 40 `
    -PVSSite 6556cxxx-fc88-45f6-8xxx-ea4b665e9xxx -PVSvDisk cf056xxx-f69b-xxxx-9a60-c41072b8xxxx
    <!--NeedCopy-->
    
  5. Run the other required PowerShell commands to create a catalog. For information on creating a catalog using PowerShell commands, see https://developer-docs.citrix.com/projects/citrix-daas-sdk/en/latest/.