Citrix Provisioning

Create Citrix Provisioning catalogs in Citrix Studio

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 Citrix Studio (Full Configuration interface (for Citrix DaaS) and Web Studio (for on-premises Citrix Virtual Apps and Desktops deployment)), 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.

This article explains how to create an Azure Citrix Provisioning catalog using the Citrix Studio user interface and PowerShell commands.

Considerations

  • 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

  • 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 2311 or later.
  • Update the vDisks to run the required version of the VDA (2311 or later). See Updating vDisks.

Key steps

  1. Set up Citrix Provisioning on Azure.

    Note:

    Citrix Provisioning version must be 2311 or later.

  2. Join your farm with Citrix Cloud or Citrix Virtual Apps and Desktops site.
  3. Create or update vDisk.

    Note:

    The VDA version must be 2311 or later.

  4. Add a connection to Azure and specify its network resources.
  5. Create a Citrix Provisioning catalog using Citrix Studio.
  6. 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.

Join your farm with Citrix Cloud or Citrix Virtual Apps and Desktops site

Run the Configuration Wizard to join the Citrix Provisioning servers in a farm to Citrix Cloud or Citrix Virtual Apps and Desktops site.

If you choose to join your farm with Citrix Cloud, then you can additionally:

  • Provision Citrix Provisioning targets in DaaS (Full Configuration interface).
  • Have enhanced database encryption.

If you choose to join your farm to a Citrix Virtual Apps and Desktops site, then you can additionally:

  • Provision Citrix Provisioning targets using the on-premises Citrix Virtual Apps and Desktops Web Studio.

For more information, see Join Citrix Cloud or Citrix Virtual Apps and Desktops site.

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 (2311 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 Citrix DaaS: Connection to Microsoft Azure or Citrix Virtual Apps and Desktops: Connection to Microsoft Azure.

Create a Citrix Provisioning catalog using the Citrix Studio 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.

If 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.

If using the Web Studio:

  1. Sign in to Web Studio, select Machine Catalogs in the left pane.

To create a Citrix Provisioning catalog using the Full Configuration interface or Web Studio:

  1. Select Create Machine Catalog. The catalog creation wizard opens.
  2. On the Machine Type page, select a machine type for this catalog, such as Multi-session OS or Single-session OS.
  3. 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.
  4. (Viewable only to single-session-OS catalogs) On the Desktop Experience page, select the random or static desktop experience as needed.
  5. 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.
  6. 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.
  7. On the Virtual Machines page, select the count of VMs, VM size, and availability zone.
  8. On the NICs page, add the NICs you want the VMs to use.
  9. On the Disk Settings page, select the storage type and size of the write-back cache disk.
  10. On the Resource Group page, choose whether to create resource groups or use existing groups. When you select Create a resource group to provision machines, a resource group is created with a name in the following format: citrix-xd-<ProvSchemeId>-<Random5CharacterSuffix>.

    Note:

    When you delete the catalog, the associated resource group is also deleted along with it.

  11. On the Machine Identities page, select Create new Active Directory accounts. Specify an account naming scheme.
  12. On the Domain Credentials page, click Enter credentials. Enter your domain credentials to perform account operations in the target Active Directory domain.
  13. On the Summary page, enter a name for the machine catalog, and click Finish.

A Citrix Provisioning machine catalog is now created.

Create a customer-managed encryption key enabled catalog

You can create a Citrix Provisioning catalog enabled with customer-managed encryption key (CMEK) using the Full Configuration interface and PowerShell commands.

You can create a machine-profile based catalog. The important considerations are:

  • If there is a custom property or machine profile with DES Id, it always overrides the master image DES Id if they’re different.
  • If master image does not have DES Id, then DES Id in custom property overwrites DES Id value in the machine profile.
  • You can change the DES Id of an existing catalog if the master image does not have DES Id. The new VMs only have the new DES Id.
  • You can update an existing catalog to a CMEK enabled catalog.
  • You cannot apply DES Id change to the existing VMs.

For more information on Azure Customer-managed encryption key, see Azure Customer-managed encryption key.

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: All PVS-provisioned collections in the site
  • Studio Provisioned Collections: All Studio-provisioned collections in the site

In the Studio Provisioned Collections, you can see collections with the same name as the Studio catalog.

Image of collections in the Citrix Provisioning console under site

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 Creating a Catalog and Manage Citrix DaaS using Remote PowerShell SDKs.