Citrix Virtual Apps and Desktops

Azure Local 连接

创建和管理连接和资源 介绍了用于创建连接的向导。以下信息涵盖了 Azure Local 环境特有的详细信息。

  • 创建托管连接

您可以使用以下方式创建主机连接:

使用 Web Studio

  1. 在 Web Studio 中,打开 托管 > 添加连接和资源
  2. 连接页面上,按照以下步骤配置连接:

    1. 选择创建新连接
    2. 选择 Microsoft® Azure™ Arc 作为连接类型。
    3. 选择一个 Azure 环境。
    4. 选择一个区域。这些选项是您配置的所有资源位置。
    5. 选择其他工具以创建虚拟机。

      注意:

      选择其他工具仅创建托管连接,而不创建托管单元。

    6. 单击下一步
  3. 连接详细信息页面上,按照向导中的指导输入连接详细信息。如果您使用现有 SPN,请确保该 SPN 已被授予订阅的参与者角色。有关详细信息,请查看所需的 Azure Local 权限

  4. 范围页面上,为此连接选择一个或多个范围。
  5. 摘要页面上,检查配置并单击完成

使用 PowerShell

脚本头

请确保提供脚本头中定义的正确参数值。

$azureSubscription = "" # Azure Subscription ID 

$azureTenantId = "" # Microsoft Entra Tenant ID 

$appClientId = "" # Client ID of an Microsoft Entra application which is grant with sufficient permissions 

-  $appClientSecret = "" # Client secret of above client ID 

$appClientSecretExpirationDateTimestamp = "" # Client secret expiration date in epoch timestamp format 

$region = "" # Azure region of your Azure Local cluster 

$resourceGroupName = "" # Azure resource group of your Azure Local cluster 

$zoneUid = "" # Zone UID of your resource location 

$hostingConnectionName = "" # Name of the created hosting connection 
<!--NeedCopy-->

创建托管连接

asnp citrix* 

[SecureString]$appClientSecretSecureString = $appClientSecret | ConvertTo-SecureString -AsPlainText -Force 

$conn = New-Item -ConnectionType "Custom" -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"SubscriptionId`" Value=`"$azureSubscription`" /><Property xsi:type=`"StringProperty`" Name=`"ManagementEndpoint`" Value=`"https://management.azure.com/`" /><Property xsi:type=`"StringProperty`" Name=`"AuthenticationAuthority`" Value=`"https://login.microsoftonline.com/`" /><Property xsi:type=`"StringProperty`" Name=`"TenantId`" Value=`"$azureTenantId`" /></CustomProperties>" -HypervisorAddress @("https://management.azure.com/") -Path @("XDHyp:\Connections\$hostingConnectionName") -Persist -PluginId "AzureArcFactory" -Scope @() -SecurePassword $appClientSecretSecureString -UserName $appClientId -ZoneUid $zoneUid 

New-BrokerHypervisorConnection -HypHypervisorConnectionUid $conn.HypervisorConnectionUid 

Set-HypHypervisorConnectionMetadata -HypervisorConnectionUid $conn.HypervisorConnectionUid -Name Citrix_Orchestration_Hypervisor_Secret_Allow_Edit -Value true 

Set-HypHypervisorConnectionMetadata -HypervisorConnectionUid $conn.HypervisorConnectionUid -Name Citrix_Orchestration_Hypervisor_Secret_Expiration_Date -Value $appClientSecretExpirationDateTimestamp
<!--NeedCopy-->

创建托管单元

您可以使用以下方式创建托管单元:

-  [Web Studio](#create-a-hosting-unit-use-web-studio)
-  [PowerShell](#create-a-hosting-unit-using-powershell)

使用 Web Studio 创建托管单元

  1. 在 Web Studio 中,打开 托管 > 添加连接和资源
  2. 连接页面上:

    • 要创建新的托管连接以及托管单元,请选择 创建新连接,然后执行以下操作:

      1. 选择创建新连接
      2. 选择 Microsoft® Azure™ Arc 作为连接类型。
      3. 选择一个 Azure 环境。
      4. 选择一个区域。这些选项是您配置的所有资源位置。
      5. 选择 Citrix 预配工具 (Machine Creation Services™ 或 Citrix Provisioning) 以创建虚拟机。
      6. 单击下一步
    • 要从现有主机连接创建托管单元,请选择 使用现有连接 ,然后选择相关连接。

  3. 连接详细信息页面上,按照向导中的指导输入连接详细信息。如果您使用现有 SPN,请确保该 SPN 已被授予订阅的参与者角色。
  4. 群集选择页面上,浏览资源组并选择目标 Azure Local 群集。
  5. 存储选择页面上,为每种受支持的数据类型选择至少一个存储设备,然后才能继续向导中的下一页。有关存储选择的详细信息,请参阅 主机存储
  6. 在 网络 页面上,输入资源的名称。此名称将显示在 Studio 中,用于标识与连接关联的存储和网络组合。选择 VM 使用的一个或多个网络。
  7. 在 摘要 页面上,检查详细信息并单击 完成

使用 PowerShell 创建托管单元

脚本头

请确保提供脚本头中定义的正确参数值。

$resourceGroupName = "" # Azure resource group of your Azure Local cluster 

$clusterName = "" # Name of your Azure Local cluster 

$storagePathName = "" # Storage path in your Azure Local cluster that wants to be used in this hosting unit 

$logicalNetworkName = "" # Logical network in your Azure Local cluster that wants to be used in this hosting unit 

$zoneUid = "" # Zone UID of your resource location 

$hostingConnectionName = "" # Name of the created hosting connection 

$hostingUnitName = "" # Name of the created hosting unit 
<!--NeedCopy-->

创建托管单元

asnp citrix* 

$guid = (New-Guid).Guid 

New-HypStorage -StoragePath @("XDHyp:\Connections\$hostingConnectionName\$region.region\$resourceGroupName.resourcegroup\cluster.folder\$clusterName.cluster\storage.folder\$storagePathName.storage") -StorageType "TemporaryStorage" -JobGroup $guid 

New-Item -Path XDHyp:\HostingUnits -Name $hostingUnitName -HypervisorConnectionName $hostingConnectionName -RootPath "XDHyp:\Connections\$hostingConnectionName\$region.region\$resourceGroupName.resourcegroup\cluster.folder\$clusterName.cluster" -NetworkPath "XDHyp:\Connections\$hostingConnectionName\$region.region\$resourceGroupName.resourcegroup\cluster.folder\$clusterName.cluster\network.folder\$logicalNetworkName.network" -StoragePath "XDHyp:\Connections\$hostingConnectionName\$region.region\$resourceGroupName.resourcegroup\cluster.folder\$clusterName.cluster\storage.folder\$storagePathName.storage" -JobGroup $guid 
<!--NeedCopy-->

所需的 Azure Local 权限

参与者角色拥有管理所有资源的完全访问权限,并提供最佳的未来兼容性,尽管它包含的权限超出了当前功能集所需。本节详细介绍了 Azure Local 所需的最低权限。

最低权限

电源管理 VM

"Microsoft.Resources/tenants/read", 

"Microsoft.Resources/subscriptions/read", 

"Microsoft.Resources/subscriptions/locations/read", 

"Microsoft.Resources/subscriptions/resourceGroups/read", 

"Microsoft.AzureStackHCI/VirtualMachines/Read", 

"Microsoft.AzureStackHCI/virtualMachineInstances/Read", 

-  "Microsoft.AzureStackHCI/LogicalNetworks/Read", 

"Microsoft.AzureStackHCI/StorageContainers/Read", 

"Microsoft.AzureStackHCI/Clusters/Read", 

"Microsoft.AzureStackHCI/VirtualMachineInstances/start/action", 

"Microsoft.AzureStackHCI/VirtualMachineInstances/stop/action", 

"Microsoft.AzureStackHCI/VirtualMachineInstances/restart/action" 

"Microsoft.ExtendedLocation/CustomLocations/Read", 

"Microsoft.KubernetesConfiguration/extensions/read", 

"Microsoft.HybridCompute/machines/read" 
<!--NeedCopy-->

创建、更新或删除 VM

"Microsoft.Resources/tenants/read", 

"Microsoft.Resources/subscriptions/read", 

"Microsoft.Resources/subscriptions/locations/read", 

"Microsoft.Resources/subscriptions/resourceGroups/read", 

"Microsoft.Resources/subscriptions/resourceGroups/write", 

"Microsoft.Resources/subscriptions/resourceGroups/delete", 

"Microsoft.HybridCompute/machines/read", 

"Microsoft.HybridCompute/machines/write", 

"Microsoft.HybridCompute/machines/delete", 

"Microsoft.AzureStackHCI/Clusters/Read", 

"Microsoft.AzureStackHCI/VirtualMachines/Read", 

"Microsoft.AzureStackHCI/VirtualMachines/Write", 

"Microsoft.AzureStackHCI/VirtualMachines/Delete", 

"Microsoft.AzureStackHCI/virtualMachineInstances/Read", 

"Microsoft.AzureStackHCI/virtualMachineInstances/Write", 

"Microsoft.AzureStackHCI/virtualMachineInstances/Delete", 

"Microsoft.AzureStackHCI/VirtualMachineInstances/start/action", 

"Microsoft.AzureStackHCI/VirtualMachineInstances/stop/action", 

"Microsoft.AzureStackHCI/VirtualMachineInstances/restart/action", 

"Microsoft.AzureStackHCI/LogicalNetworks/Read", 

"Microsoft.AzureStackHCI/LogicalNetworks/join/action", 

"Microsoft.AzureStackHCI/StorageContainers/Read", 

"Microsoft.AzureStackHCI/StorageContainers/deploy/action", 

"Microsoft.AzureStackHCI/GalleryImages/Read", 

"Microsoft.AzureStackHCI/GalleryImages/Write", 

"Microsoft.AzureStackHCI/GalleryImages/Delete", 

"Microsoft.AzureStackHCI/GalleryImages/deploy/action", 

"Microsoft.AzureStackHCI/NetworkInterfaces/Read", 

"Microsoft.AzureStackHCI/NetworkInterfaces/Write", 

"Microsoft.AzureStackHCI/NetworkInterfaces/Delete", 

"Microsoft.AzureStackHCI/VirtualHardDisks/Read", 

"Microsoft.AzureStackHCI/VirtualHardDisks/Write", 

"Microsoft.AzureStackHCI/VirtualHardDisks/Delete", 

"Microsoft.AzureStackHCI/VirtualHardDisks/upload/action", 

"Microsoft.AzureStackHCI/marketplaceGalleryImages/deploy/action", 

"Microsoft.ExtendedLocation/CustomLocations/Read", 

"Microsoft.ExtendedLocation/customLocations/deploy/action", 

"Microsoft.KubernetesConfiguration/extensions/read", 

"Microsoft.Compute/disks/read", 

"Microsoft.Compute/disks/write", 

"Microsoft.Compute/disks/delete", 

"Microsoft.Compute/disks/beginGetAccess/action", 

"Microsoft.Compute/disks/endGetAccess/action", 

"Microsoft.Compute/snapshots/read", 

"Microsoft.Compute/snapshots/write", 

"Microsoft.Compute/snapshots/delete", 

"Microsoft.Compute/snapshots/beginGetAccess/action", 

"Microsoft.Compute/snapshots/endGetAccess/action"
<!--NeedCopy-->

后续步骤

更多信息

Azure Local 连接