Citrix Virtual Apps and Desktops 7 2311

创建 AWS 目录

创建计算机目录 介绍了创建计算机目录的向导。以下信息涵盖了 AWS 虚拟化环境的特定详细信息。

注意:

在创建 AWS 目录之前,您需要完成与 AWS 的连接创建。请参阅 连接到 AWS

局限性

自 Citrix Virtual Apps and Desktops™ 2203 LTSR 及更高版本起,MCS AWS 插件会发出 DescribeInstanceTypes AWS API 调用;如果该调用成功,MCS 将使用从 API 响应创建的清单名称。

因此,当您从 CVAD 1912 升级到 2203 或更高版本时,请禁用 AWS 上的 DefineInstanceType 权限,然后使用 Set-ProvScheme 命令更新现有目录以匹配 AWS 命名方案。然后,在目录更新完成后,并且服务产品与 AWS 命名方案匹配后,重新添加 DescribeInstanceType 权限。

映像准备期间的网络设置

在映像准备期间,会基于原始 VM 创建一个准备虚拟机 (VM)。此准备 VM 与网络断开连接。为了将网络与准备 VM 断开连接,会创建一个网络安全组以拒绝所有入站和出站流量。此网络安全组会持久存在并被重复使用。网络安全组的名称为 Citrix.XenDesktop.IsolationGroup-GUID,其中 GUID 是随机生成的。

配置 AWS 租用

AWS 提供以下租用选项:

  • 共享租用(默认类型):来自不同客户的多个 Amazon EC2 实例可能驻留在同一物理硬件上。
  • 专用租用:您的 EC2 实例仅在您已部署的其他实例所在的硬件上运行。其他客户不使用同一物理硬件。

您可以使用 MCS 通过 PowerShell 预配 AWS 专用主机。

使用 PowerShell 配置 AWS 专用主机租用

您可以通过 PowerShell 定义主机租用模式来创建计算机目录。

Amazon [EC2] 专用主机是一种物理服务器,具有 [EC2] 实例容量,完全专用,允许您使用现有的按插槽或按虚拟机软件许可证。

专用主机具有基于实例类型的预设利用率。例如,单个分配的 C4 Large 实例类型的专用主机仅限于运行 16 个实例。有关详细信息,请参阅 AWS 站点

预配到 AWS 主机的要求包括:

  • 导入的 BYOL(自带许可证)映像 (AMI)。使用专用主机,您可以利用和管理现有许可证。
  • 一个具有足够利用率的专用主机分配,以满足预配请求。
  • 启用 自动放置

To provision to a dedicated host in AWS using PowerShell, use the New-ProvScheme cmdlet with the parameter TenancyType set to Host.

有关详细信息,请参阅 Citrix 开发人员文档

从 AMI 捕获计算机属性

在 AWS 中使用 Machine Creation Services (MCS) 创建目录以预配计算机时,您需要选择一个 AMI 来表示该目录的主/黄金映像。MCS 会从该 AMI 使用磁盘快照。在以前的版本中,如果您希望在计算机上设置角色或标签,则需要使用 AWS 控制台单独设置它们。此功能默认启用。

提示:

要使用 AWS 实例属性捕获功能,您必须有一个与 AMI 关联的 VM。

为了改进此过程,MCS 会读取从中获取 AMI 的实例的属性,并将计算机的身份和访问管理 (IAM) 角色和标签应用于为给定目录预配的计算机。使用此可选功能时,目录创建过程会查找选定的 AMI 源实例,读取一组有限的属性。然后,这些属性存储在 AWS 启动模板中,该模板用于为该目录预配计算机。目录中的任何计算机都将继承捕获的实例属性。

捕获的属性包括:

  • IAM 角色 – 应用于预配实例。
  • 标签 - 应用于预配实例、其磁盘和网卡。这些标签应用于瞬态 Citrix® 资源,包括:S3 存储桶和对象,以及 AMI、快照和启动模板。

提示:

瞬态 Citrix 资源的标记是可选的,并且可以使用自定义属性 AwsOperationalResourcesTagging 进行配置。

捕获 AWS 实例属性

您可以通过指定自定义属性 AwsCaptureInstanceProperties,在为 AWS 托管连接创建预配方案时使用此功能:

New-ProvScheme -CustomProperties "AwsCaptureInstanceProperties,true" …<standard provscheme parameters

有关更多信息,请参阅 Citrix 开发人员文档

注意:

AwsCaptureInstanceProperties 已弃用。

从计算机配置文件捕获计算机属性

使用 MCS 创建目录以预配 AWS 计算机时,您可以使用计算机配置文件来预设某些计算机属性设置。

为此,请执行以下步骤:

  1. 将计算机配置文件存储在与您正在创建此目录的资源相同的可用区中。
  2. 在目录创建向导的“计算机模板”页面上,选择“使用计算机配置文件”。将显示与您选择的资源位于同一可用区中的计算机配置文件。
  3. 根据需要选择计算机配置文件。

注意:

您可以使用计算机配置文件或 AMI 来捕获计算机属性。在 Web Studio 中,当您选择使用计算机配置文件时,将计算机模板属性应用于虚拟机选项会自动隐藏。

标记 AWS 运营资源

使用 MCS 在 AWS 中创建目录以预配计算机时,您可以控制是否将 IAM 角色和标记属性应用于这些计算机。您还可以控制是否将计算机标记应用于运营资源。

Amazon Machine Image (AMI) 是一种虚拟设备,用于在 Amazon 云环境(通常称为 EC2)中创建虚拟机。您可以使用 AMI 部署使用 EC2 环境的服务。当您使用 MCS 为 AWS 创建目录以预配计算机时,您选择 AMI 作为该目录的黄金映像。

重要提示:

通过捕获实例属性和启动模板来创建目录是使用运营资源标记所必需的。

要创建 AWS 目录,您必须首先为您希望作为黄金映像的实例创建 AMI。MCS 从该实例读取标记并将其合并到启动模板中。然后,启动模板标记将应用于在您的 AWS 环境中创建的所有 Citrix 资源,包括:

  • 虚拟计算机
  • 虚拟机磁盘
  • 虚拟机网络接口
  • S3 存储桶
  • S3 对象
  • 启动模板
  • AMI

标记操作性资源

要使用 PowerShell 标记资源,请执行以下操作:

  1. 从 DDC 主机打开一个 PowerShell 窗口。
  2. 运行命令 asnp citrix 以加载 Citrix 特定的 PowerShell 模块。

要为预配的 VM 标记资源,请使用新的自定义属性 AwsOperationalResourcesTagging。此属性的语法为:

New-ProvScheme -CustomProperties "AwsCaptureInstanceProperties,true; AwsOperationalResourcesTagging,true" …<standard provscheme parameters>

后续步骤

复制 VM 上的标签

您可以将计算机配置文件中指定的 NIC 和磁盘(身份磁盘、回写缓存磁盘和操作系统磁盘)上的标签复制到 MCS 计算机目录中新创建的 VM。您可以在任何计算机配置文件源(AWS VM 实例或 AWS 启动模板版本)中指定这些标签。此功能适用于持久性和非持久性计算机目录和 VM。

注意:

  • 在 AWS EC2 控制台中,您无法在 启动模板版本资源标签 下看到 标记网络接口 值。但是,您可以运行 PowerShell 命令 aws ec2 describe-launch-template-versions --launch-template-id lt-0bb652503d45dcbcd --versions 12 来查看标签规范。
  • 如果机器配置文件源(VM 或启动模板版本)有两个网络接口(eni-1 和 eni-2),并且 eni-1 有标签 t1,eni-2 有标签 t2,那么 VM 将获得这两个网络接口的标签。

使用机器配置文件创建目录

在 AWS 中使用 Machine Creation Services™ (MCS) 创建目录以预配计算机时,您现在可以使用机器配置文件从 EC2 实例 (VM) 或启动模板版本捕获硬件属性,并将其应用于预配的计算机。捕获的属性可以包括(例如)EBS 卷属性、实例类型、EBS 优化以及其他受支持的 AWS 配置。编辑目录时,可以通过提供不同的 VM 或启动模板来更改预配计算机的机器配置文件。

注意:

EBS 卷属性仅从机器配置文件派生。

重要注意事项

创建 MCS 计算机目录时的重要注意事项:

  • 如果您在 New-ProvSchemeSet-ProvScheme 命令中添加计算机硬件属性参数,则参数中提供的值将覆盖机器配置文件中的值。
  • 如果您将 AwsCaptureInstanceProperties 设置为 true 并且未设置 MachineProfile 属性,则仅捕获 IAM 角色和标签。
  • 您不能同时设置 AwsCaptureInstancePropertiesMachineProfile

    注意:

    AwsCaptureInstanceProperties 已弃用。

  • 您必须明确地提供以下各项属性的值:

    • 租用类型
    • 安全群组
    • NIC 或虚拟网络
  • 仅当您启用 AwsCaptureInstanceProperties 或指定计算机配置文件时,才能启用 AwsOperationalResourcesTagging

创建 MCS 计算机目录后的重要注意事项:

  • 只有新添加到目录中的虚拟机受此更改影响。
  • 您无法将目录从基于计算机配置文件的目录更改为非基于计算机配置文件的目录。

使用计算机配置文件创建计算机目录

要使用计算机配置文件创建计算机目录,请执行以下操作:

  1. Open a PowerShell window.
  2. Run asnp citrix* to load the Citrix-specific PowerShell modules.
  3. 如果尚未创建,请创建身份池。例如,

    New-AcctIdentityPool -IdentityPoolName idPool -NamingScheme ms## -Domain abcdf -NamingSchemeType Numeric
    <!--NeedCopy-->
    
  4. Run New-ProvScheme command. For example:

    New-ProvScheme -ProvisioningSchemeName demet-test-1
    -HostingUnitUid aa633238-9xxd-4cf6-80e8-232a758a1xx1
    -IdentityPoolUid 34d5b088-e312-416f-907d-16573xxxxxc4
    -CleanOnBoot
    -MasterImageVM 'XDHyp:\HostingUnits\cvad-test-scalestress\citrix-demet-ami.0 (ami-0ca813xxxxxx061ef).template'
    -MachineProfile 'XdHyp:\HostingUnits\cvad-test-scalestress\us-east-1a.availabilityzone\machine-profile-instance i (i-0xxxxxxxx).vm'
    <!--NeedCopy-->
    
  5. 完成目录创建。有关详细信息,请参阅 Citrix PowerShell SDK

要更新最初使用计算机配置文件预配的目录上的计算机配置文件,请执行以下操作:

  1. 运行 Set-ProvScheme 命令。例如,

    Set-ProvScheme `
    -ProvisioningSchemeUid "<ID" `
    -MachineProfile "XDHyp:\HostingUnits\abc\us-east-1a.availabilityzone\citrix-cvad-machineprofile-instance (i-0xxxxxxxx).vm"
    <!--NeedCopy-->
    

创建具有启动模板版本的目录

您可以创建一个以启动模板版本作为计算机配置文件输入的 MCS 计算机目录。您还可以将计算机配置文件目录的输入从 VM 更新为启动模板版本,以及从启动模板版本更新为 VM。

在 AWS EC2 控制台中,您可以提供启动模板的实例配置信息以及版本号。当您在创建或更新计算机目录时将启动模板版本指定为计算机配置文件输入时,该版本启动模板的属性将复制到预配的 VDA VM。

以下属性可以使用计算机配置文件输入提供,也可以在 New-ProvSchemeSet-ProvScheme 命令中显式作为参数提供。如果它们在 New-ProvSchemeSet-ProvScheme 命令中提供,则它们优先于这些属性的计算机配置文件值。

  • 服务产品
  • 网络
  • 安全群组
  • 租用类型

注意:

如果计算机配置文件启动模板中未提供服务产品,或者未在 New-ProvScheme 命令中将其作为参数提供,则会收到相应的错误。

要使用启动模板版本作为计算机配置文件输入来创建目录,请执行以下操作:

  1. 打开一个 PowerShell 命令行窗口。
  2. 运行 asnp citrix* 以加载 思杰 相关的 PowerShell 模块。
  3. 获取启动模板的启动模板版本列表。例如:

    XDHyp:\HostingUnits\test\test-mp-sard (lt-01xxxxx).launchtemplate> ls | Select FullPath
    <!--NeedCopy-->
    
  4. 如果尚未创建身份池,请创建一个。例如:

    New-AcctIdentityPool `
    -IdentityPoolName "abc11" `
    -NamingScheme "abc1-##" `
    -NamingSchemeType Numeric `
    -Domain "citrix-xxxxxx.local" `
    -ZoneUid "xxxxxxxx" `
    <!--NeedCopy-->
    
  5. 创建一个以启动模板版本作为计算机配置文件输入的预配方案。例如:

    New-ProvScheme `
    -ProvisioningSchemeName "MPLT1" `
    -HostingUnitUid "c7f71f6a-3f45-4xxx-xxxx-xxxxxxxxxx" `
    -IdentityPoolUid "bf3a6ba2-1f80-4xxx-xxxx-xxxxxxxxx" `
    -MasterImageVM "XDHyp:\HostingUnits\xxxd-ue1a\apollo-non-persistent-vda-win2022 (ami-0axxxxxxxxxxx).template" `
    -CleanOnBoot `
    -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-01xxxxx).launchtemplate\lt-01xxxxx (1).launchtemplateversion"
    <!--NeedCopy-->
    

    您还可以覆盖服务产品、安全组、租用和网络等参数。例如:

    New-ProvScheme `
    -ProvisioningSchemeName "MPLT1" `
    -HostingUnitUid " c7f71f6a-3f45-4xxx-xxxx-xxxxxxxxxx" `
    -IdentityPoolUid " bf3a6ba2-1f80-4xxx-xxxx-xxxxxxxxx" `
    -MasterImageVM "XDHyp:\HostingUnits\xxxd-ue1a\apollo-non-persistent-vda-win2022 (ami-0axxxxxxxxxxx).template" `
    -CleanOnBoot `
    -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-01xxxx).launchtemplate\lt-01xxxx (1).launchtemplateversion" `
    -ServiceOffering "XDHyp:\HostingUnits\xxxd-ue1a\T3 Large Instance.serviceoffering"
    <!--NeedCopy-->
    
  6. 将预配方案注册为代理目录。例如:

    New-BrokerCatalog -Name "MPLT1" `
    -AllocationType Random `
    -Description "Machine profile catalog" `
    -ProvisioningSchemeId fe7df345-244e-4xxxx-xxxxxxxxx `
    -ProvisioningType Mcs `
    -SessionSupport MultiSession `
    -PersistUserChanges Discard
    <!--NeedCopy-->
    
  7. 完成目录创建。有关详细信息,请参阅 Citrix PowerShell SDK

您还可以将计算机配置文件目录的输入从 VM 更新为启动模板版本,以及从启动模板版本更新为 VM。例如:

  • 要将计算机配置文件目录的输入从 VM 更新为启动模板版本:

     Set-ProvScheme -ProvisioningSchemeName "CloudServiceOfferingTest" `
     -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-0bxxxxxxxxxxxx).launchtemplate\lt-0bxxxxxxxxxxxx (1).launchtemplateversion"
     <!--NeedCopy-->
    
  • 要将计算机配置文件目录的输入从启动模板版本更新为 VM:

     Set-ProvScheme -ProvisioningSchemeName "CloudServiceOfferingTest" `
     -MachineProfile "XDHyp:\HostingUnits\sard-ue1a\us-east-1a.availabilityzone\apollo-non-persistent-vda-win2022-2 (i-08xxxxxxxxx).vm"
     <!--NeedCopy-->
    

筛选 VM 实例

用作计算机配置文件 VM 的 AWS EC2 实例必须兼容,以便计算机目录能够正确创建和运行。要列出可用作计算机配置文件输入 VM 的 AWS EC2 实例,可以使用 Get-HypInventoryItem 命令。该命令可以对托管单元上可用的 VM 清单进行分页和筛选。

分页:

Get-HypInventoryItem 支持两种分页模式,它们分别是:

  • 分页模式使用 -MaxRecords-Skip 参数返回项目集:
    • -MaxRecords:默认值为 1。这控制要返回的项目数。
    • -Skip:默认值为 0。这控制从管理程序列表中绝对开头(或绝对结尾)跳过的项目数。
  • 滚动模式使用 -MaxRecords-ForwardDirection-ContinuationToken 参数来允许记录滚动:
    • -ForwardDirection:默认值为 True。此参数与 -MaxRecords 一起使用,以返回下一组匹配记录或上一组匹配记录。
    • -ContinuationToken:返回紧随其后(如果 ForwardDirectionfalse,则为之前)的项,但不包括 ContinuationToken 中给定的项。

分页的示例:

  • 返回名称最低的计算机模板的单个记录。AdditionalData 字段包含 TotalItemsCountTotalFilteredItemsCount

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template
     <!--NeedCopy-->
    
  • 返回名称最低的计算机模板的 10 条记录:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 10 | select Name
     <!--NeedCopy-->
    
  • 返回以最高名称结尾的记录数组:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -ForwardDirection $False -MaxRecords 10 | select Name
     <!--NeedCopy-->
    
  • 返回从与给定 ContinuationToken 关联的计算机模板开始的记录数组:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -ContinuationToken "ami-07xxxxxxxxxx" -MaxRecords 10
     <!--NeedCopy-->
    

筛选:

支持以下用于筛选的其他可选参数。您可以将这些参数与分页选项结合使用。

  • -ContainsName "my_name":如果给定字符串与 AMI 名称的一部分匹配,则该 AMI 将包含在 Get 结果中。例如:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 100 -ContainName ‘apollo’ | select Name
     <!--NeedCopy-->
    
  • -Tags '{ "Key0": "Value0", "Key1": "Value1", "Key2": "Value2" }':如果 AMI 至少具有其中一个标签,则它将包含在 Get 结果中。例如:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 100 -Tags '{"opex owner": "Not tagged"}' | select Name
     <!--NeedCopy-->
    

    注意:

    支持两个标签值。未标记标签值匹配其标签列表中没有给定标签的项。所有值标签值匹配具有该标签的项,无论标签的值如何。否则,仅当项具有该标签且值等于筛选器中给定的值时,才会发生匹配。

  • -Id "ami-0a2d913927e0352f3":如果 AMI 与给定 ID 匹配,则它将包含在 Get 结果中。例如:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -Id ami-xxxxxxxxxxxxx
     <!--NeedCopy-->
    

根据 AdditionalData 参数进行筛选的详细信息如下:

AdditionalData 筛选参数根据模板或虚拟机的能力、服务产品或 AdditionalData 中的任何属性列出它们。例如:

(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200).AdditionalData
<!--NeedCopy-->

您还可以添加一个 -Warn 参数以指示不兼容的 VM。VM 包含一个名为 WarningAdditionalData 字段。例如:

(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200 -Template "ami-015xxxxxxxxx" -Warn $true).AdditionalData
<!--NeedCopy-->

更多信息