Citrix Virtual Apps and Desktops

连接到本地 Azure

创建和管理连接和资源 描述了创建连接的向导。以下信息涵盖了特定于本地 Azure 环境的详细信息。

创建一条托管连接

您可以使用以下方式创建托管连接:

使用 Web 工作室

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

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

      注意:

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

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

  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

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

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

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

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

“参与者”角色拥有管理所有资源的完全访问权限,并提供最佳的未来兼容性,尽管它包含的权限超出了当前功能集所需。本节详细介绍了 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