创建 AWS 目录
创建计算机目录介绍了用于创建计算机目录的向导。以下信息涵盖了特定于 AWS 虚拟化环境的详细信息。
注意:
在创建 AWS 目录之前,您需要完成创建与 AWS 的连接。请参阅与 AWS 的连接。
映像准备期间的网络设置
在映像准备期间,将在原始 VM 的基础上创建准备虚拟机 (VM)。此准备 VM 已与网络断开连接。为了断开网络与准备 VM 的连接,需要创建一个网络安全组以拒绝所有入站和出站流量。此网络安全组会持续存在并可重复使用。网络安全组的名称为 Citrix.XenDesktop.IsolationGroup-GUID
,其中 GUID 是随机生成的。
AWS 租赁
AWS 提供以下租赁选项:共享租赁(默认类型)和专用租赁。共享租赁意味着来自不同客户的多个 Amazon EC2 实例可能位于同一个物理硬件上。专用租赁意味着您的 EC2 实例仅与已部署的其他实例一起在硬件上运行。其他客户不使用同一个硬件。
您可以使用 MCS 使用 Studio 或 PowerShell 配置 AWS 专用主机。
向 AWS 主机进行配置的要求
- 导入的 BYOL(自带许可)映像 (AMI)。通过专用主机,使用并管理您的现有许可证。
- 分配了具有足够利用率的专用主机,可满足预配请求。
- 启用自动放置。
使用 Studio 配置 AWS 专用主机租赁
使用 MCS 创建用于在 AWS 中预配计算机的目录时,计算机目录设置 > 安全页面提供了以下选项:
- 使用共享硬件。此设置适合大多数部署。多个客户共享几个硬件,即使他们之间没有互动亦如此。使用共享硬件是运行 Amazon EC2 实例的最便宜的选择。
- 使用专用主机。Amazon EC2 专用主机是具有完全专用的 EC2 实例容量的物理服务器,允许您按套接字或 VM 使用现有软件许可证。专用主机具有基于实例类型的预设利用率。例如,针对 C4 大型实例类型分配的一个专用主机最多运行 16 个实例。请参阅 AWS 站点以了解详细信息。
-
使用专用实例。此设置更适合具有特定安全性或合规性要求的部署。使用专用实例,您仍然可以享受将主机与其他 AWS 客户分开的好处,但无需为整个主机付费。您无需担心主机的容量,但需要为实例支付更高的费率。
此设置适用于需要您使用专用主机的许可限制或安全要求的部署。使用专用主机,您可以拥有整个物理主机,并按小时计费。拥有该主机可让您在该主机允许的情况下启动尽可能多的 EC2 实例,而无需支付额外的费用。
注意:
如果没有正在进行的目录创建或映像更新任务,则可以删除任何可用的准备身份磁盘。
使用 PowerShell 配置 AWS 专用主机租赁
或者,您可以通过 PowerShell 预配 AWS 专用主机。使用参数 TenancyType
设置为 Host
的 New-ProvScheme
cmdlet。
捕获 AWS 实例属性
当您在 AWS 中创建目录以使用 Machine Creation Services (MCS) 预配计算机时,您可以选择一个 AMI 来表示该目录的主映像。在该 AMI 中,MCS 使用磁盘的快照。
提示:
您必须拥有与 AMI 关联的 VM,才能使用 AWS 实例属性捕获功能。
MCS 从获取 AMI 的实例中读取属性,并将计算机的身份访问管理 (IAM) 角色和标签应用于为给定目录配置的计算机。使用此可选功能时,目录创建过程会查找选定的 AMI 源实例,读取一组有限的属性。然后,这些属性将存储在 AWS 启动模板中,该模板用于为该目录预配计算机。目录中的任何计算机都会继承捕获的实例属性。
捕获的属性包括:
- IAM 角色:适用于预置实例。
- 标签:应用于预置的实例、其磁盘和 NIC。这些标记应用到临时 Citrix 资源,包括:S3 存储桶和对象、AMI、快照和启动模板。
提示:
临时 Citrix 资源的标记是可选的,可使用自定义属性
AwsOperationalResourcesTagging
进行配置。要成功应用标记并创建带有操作资源标记的 AWS 目录,请不要删除用于创建 AMI 映像的 EC2 实例。
捕获 AWS 实例属性
在为 AWS 托管连接创建预配方案时,可以通过指定自定义属性 AwsCaptureInstanceProperties
来使用此功能:
New-ProvScheme -CustomProperties “AwsCaptureInstanceProperties,true” …<standard provscheme parameters
有关详细信息,请参阅 New-ProvScheme。
注意:
AwsCaptureInstanceProperties
已被弃用。我们建议改用计算机配置文件来指定 VM 的计算机属性。
标记 AWS 运行资源
Amazon Machine Image (AMI) 表示用于在 Amazon 云环境中创建虚拟机的一种虚拟设备,通常称为 EC2。可以使用 AMI 部署使用 EC2 环境的服务。创建目录以使用适用于 AWS 的 MCS 预配计算机时,可以选择 AMI 作为该目录的黄金映像。
重要:
使用运行资源标记需要通过捕获实例属性和启动模板来创建目录。
要创建 AWS 目录,必须首先为希望成为黄金映像的实例创建 AMI。MCS 从该实例读取标记并将其合并到启动模板中。然后,启动模板标记将应用于在 AWS 环境中创建的所有 Citrix 资源,包括:
- 虚拟机
- VM 磁盘
- VM 网络接口
- S3 存储桶
- S3 对象
- 启动模板
- AMI
在 Studio 中应用 AWS 实例属性和标记操作资源
在创建目录以使用 MCS 在 AWS 中预配计算机时,可以控制是否将 IAM 角色和标记属性应用到这些计算机。还可以控制是否将计算机标记应用到运行资源。您有以下两个选项:
-
将计算机模板属性应用到虚拟机
- 控制是否将与所选计算机模板关联的 IAM 角色和标记属性应用到此目录中的虚拟机。
-
将计算机标记应用到运行资源
- 控制是否将计算机标记应用到在 AWS 环境中创建的每个项目,以便于预配计算机。运行资源是作为目录创建的副产品创建的。它们包括临时资源和永久性资源,例如准备 VM 实例和 AMI。
使用 PowerShell 标记操作资源
要使用 PowerShell 标记资源,请执行以下操作:
- 从 DDC 主机打开 PowerShell 窗口。
- 运行命令
asnp citrix
以加载 Citrix 特定的 PowerShell 模块。
要为已配置的虚拟机标记资源,请使用自定义属性 AwsOperationalResourcesTagging
。此属性的语法为:
New-ProvScheme -CustomProperties “AwsCaptureInstanceProperties,true; AwsOperationalResourcesTagging,true” …<standard provscheme parameters>
使用 PowerShell 创建基于计算机配置文件的计算机目录
可以使用计算机配置文件从 EC2 实例 (VM) 中捕获硬件属性,也可以启动模板版本并将其应用到已配置的计算机。例如,捕获的属性可以包括 EBS 卷属性、实例类型、EBS 优化、CPU 选项、租户类型、休眠功能和其他支持的 AWS 配置。
您可以使用 AWS EC2 实例 (VM) 或 AWS 启动模板版本作为计算机配置文件输入。
注意:
EBS 卷属性仅源自计算机配置文件。
重要注意事项
创建 MCS 计算机目录时的重要注意事项:
- 如果您在
New-ProvScheme
和Set-ProvScheme
命令中添加计算机硬件属性参数,则参数中提供的值将覆盖计算机配置文件中的值。 - 如果您将
AwsCaptureInstanceProperties
设置为true
,但未设置MachineProfile
属性,则仅捕获 IAM 角色和标记。 -
您不能同时设置
AwsCaptureInstanceProperties
和MachineProfile
。**注意:
AwsCaptureInstanceProperties
已被弃用。 -
如果未提供计算机配置文件,则必须明确提供以下属性的值:
- 安全组
- ENI 或虚拟网络
- 仅当启用了
AwsCaptureInstanceProperties
或者指定了计算机配置文件时才能启用AwsOperationalResourcesTagging
。
创建 MCS 计算机目录后的重要考虑因素是:
- 您无法将目录从基于计算机配置文件的目录更改为基于非计算机配置文件的目录。
使用计算机配置文件创建计算机目录
要使用计算机配置文件创建计算机目录,请执行以下操作:
- 打开 PowerShell 窗口。
- 运行
asnp citrix*
以加载 Citrix 特定的 PowerShell 模块。 -
创建标识池(如果尚未创建)。例如,
New-AcctIdentityPool -IdentityPoolName idPool -NamingScheme ms## -Domain abcdf -NamingSchemeType Numeric <!--NeedCopy-->
-
运行 New-ProvScheme 命令。例如:
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-->
- 完成目录创建。
更新计算机配置文件
要更新最初使用计算机配置文件预配的目录上的计算机配置文件,请执行以下操作。在编辑 MCS 计算机目录时,还可以更改计算机配置文件源的租赁类型和休眠功能。
-
运行
Set-ProvScheme
命令。例如,Set-ProvScheme ` -ProvisioningSchemeUid "<ID" ` -MachineProfile "XDHyp:\HostingUnits\abc\us-east-1a.availabilityzone\citrix-cvad-machineprofile-instance (i-0xxxxxxxx).vm" <!--NeedCopy-->
使用 PowerShell 创建包含启动模板版本的目录
您可以使用启动模板版本作为计算机配置文件输入来创建 MCS 计算机目录。还可以将计算机配置文件目录的输入从 VM 更新为启动模板版本,以及从启动模板版本更新到 VM。
在 AWS EC2 控制台上,您可以提供启动模板的实例配置信息以及版本号。当您在创建或更新计算机目录时将启动模板版本指定为计算机配置文件输入时,该启动模板版本中的属性将复制到已预配的 VDA VM 中。
以下属性可以使用计算机配置文件输入来提供,也可以在 New-ProvScheme
或 Set-ProvScheme
命令中作为参数明确提供。如果这些属性是在 New-ProvScheme
或 Set-ProvScheme
命令中提供的,它们将优先于这些属性的计算机配置文件值。
- 服务方案
- 网络
- 安全组
- 租赁类型
注意:
如果未在计算机配置文件启动模板中提供服务产品,也未将其作为
New-ProvScheme
命令中的参数提供,则会出现相应的错误。
要使用启动模板版本作为计算机配置文件输入来创建目录,请执行以下操作:
- 打开 PowerShell 窗口。
- 运行
asnp citrix*
以加载 Citrix 特定的 PowerShell 模块。 -
获取启动模板的启动模板版本列表。例如:
XDHyp:\HostingUnits\test\test-mp-sard (lt-01xxxxx).launchtemplate> ls | Select FullPath <!--NeedCopy-->
-
创建标识池(如果未创建)。例如:
New-AcctIdentityPool ` -IdentityPoolName "abc11" ` -NamingScheme "abc1-##" ` -NamingSchemeType Numeric ` -Domain "citrix-xxxxxx.local" ` -ZoneUid "xxxxxxxx" ` <!--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-01xxxxx).launchtemplate\lt-01xxxxx (1).launchtemplateversion" <!--NeedCopy-->
-
将供应方案注册为经纪人目录。例如:
New-BrokerCatalog -Name "MPLT1" ` -AllocationType Random ` -Description "Machine profile catalog" ` -ProvisioningSchemeId fe7df345-244e-4xxxx-xxxxxxxxx ` -ProvisioningType Mcs ` -SessionSupport MultiSession ` -PersistUserChanges Discard <!--NeedCopy-->
- 完成目录创建。
更新计算机配置文件源
还可以将计算机配置文件目录的输入从 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-->
加密操作系统和 ID 磁盘
您可以使用可用于加密操作系统磁盘和身份磁盘 (ID) 的 AWS KMS 密钥(客户管理的密钥和 AWS 托管密钥)创建永久和非持久的虚拟机目录。
- AWS 托管密钥每年自动轮换。
- 客户管理的密钥是自动轮换的可选密钥,可以手动进行管理。
可以查看以下 AWS 文档,了解有关 KMS 密钥的详细信息:
要对操作系统和 ID 磁盘进行加密,请配置以下选项之一:
- 使用加密的主映像(例如,从包含使用 KMS 密钥加密的 EBS 根卷的实例或快照创建的 AMI)
- 使用包含加密的 EBS 根卷的计算机配置文件源(VM 或启动模板)。
限制
请注意以下限制:
- MCS 目前仅支持主映像 AMI 上的一个磁盘。
-
您无法直接加密现有的未加密 EBS 卷或快照,也无法修改现有加密卷的 KMS 密钥。为此,您必须:
- 创建该卷的新快照。
- 根据该快照创建新卷
- 加密新卷。
请参阅以下 AWS 文档:
- 加密未加密的资源
- 自动或默认加密 EBS 卷的限制:自动加密现有的和新的 Amazon EBS 卷。
创建具有磁盘加密的目录
可以使用以下方法创建具有磁盘加密的 MCS 计算机目录:
- 主映像
- 计算机配置文件
使用计算机配置文件输入时的注意事项是:
- 计算机配置文件输入的 KMS 密钥优先于主映像的 KMS 密钥。
- 如果未提供计算机配置文件输入,则使用主映像 AMI 的 KMS 密钥来加密目录虚拟机的磁盘。
- 如果计算机配置文件存在块设备映射,则主映像模板 (AMI) 中存在的块设备和计算机配置文件必须匹配。例如,如果 AMI 在
/dev/sda1
上定义了设备,则计算机配置文件还必须在/dev/sda1
上定义了设备。 - 如果计算机配置文件源中没有密钥且主映像未加密,则不会加密目录虚拟机的磁盘。
- 加密主映像后,计算机配置文件源虚拟机或启动模板必须具有加密的根卷才能被视为有效输入。
修改现有目录
您可以使用 Set-ProvScheme
PowerShell 命令修改现有目录,使其具有:
- 计算机配置文件输入,其卷包含新 KMS 密钥。
- 使用新的 KMS 密钥加密的主映像模板 AMI。
重要注意事项:
- 添加到目录中的新 VM 的卷使用新的 KMS 密钥进行加密。
- 要在存在现有计算机配置文件时更新加密设置,请使用新的计算机配置文件运行
Set-ProvScheme
。 - 您无法将现有目录从加密卷修改为未加密卷。 您无法将映像从加密的主 AMI 更新到未加密的主 AMI。
复制 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 将获得这两个网络接口的标记。
使用 PowerShell 筛选虚拟机实例
您用作计算机配置文件 VM 的 AWS 虚拟机实例必须兼容计算机目录才能正常创建和运行。要列出可用作计算机配置文件输入虚拟机的 AWS 虚拟机实例,您可以使用 Get-HypInventoryItem
命令。该命令可以分页和筛选托管单元上可用的虚拟机清单。
分页:
Get-HypInventoryItem 支持两种分页模式:
- 分页模式使用
-MaxRecords
和-Skip
参数返回项目集:-
-MaxRecords
:默认值为 1。此参数控制要退回的项目数量。 -
-Skip
:默认值为 0。此参数控制从虚拟机管理程序中的列表的绝对开头(或绝对结尾)跳过的项目数量。
-
- 滚动模式使用
-MaxRecords
、-ForwardDirection
和-ContinuationToken
参数来允许滚动记录:-
-ForwardDirection
:默认值为 True。此参数与-MaxRecords
一起使用,以返回下一组匹配记录或前一组匹配记录。 -
-ContinuationToken
:返回紧随其后(如果ForwardDirection
设置为 false,则在其前面)的项目,但不包括ContinuationToken
中给出的项目。
-
分页示例:
-
返回名称排在最后的计算机模板的单条记录。
AdditionalData
字段包括TotalItemsCount
和TotalFilteredItemsCount
: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
筛选参数根据模板或 VM 的功能、服务产品或 AdditionalData 中的任何属性列出模板或 VM。例如:
(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200).AdditionalData
<!--NeedCopy-->
也可以添加一个 -Warn
参数来指明不兼容的 VM。VM 中包含一个名为警告的 AdditionalData
字段。例如:
(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200 -Template "ami-015xxxxxxxxx" -Warn $true).AdditionalData
<!--NeedCopy-->