创建 Amazon WorkSpaces Core 托管实例目录
创建计算机目录介绍了创建计算机目录的向导。以下信息涵盖了 Amazon WorkSpaces Core 托管实例的特定详细信息。
注意:
目前,仅支持创建非持久性 VM(
CleanOnBoot属性为 True)的目录。
先决条件
在创建 Amazon WorkSpaces Core 托管实例目录之前,您需要完成以下创建:
- 到 Amazon WorkSpaces Core 托管实例的连接。请参阅连接到 Amazon WorkSpaces Core 托管实例。
- 准备好的映像。请参阅为 Amazon WorkSpaces Core 托管实例创建准备好的映像。
映像准备期间的网络设置
在映像准备期间,会基于原始 VM 创建一个准备虚拟机 (VM)。此准备 VM 与网络断开连接。要断开准备 VM 与网络的连接,将创建一个网络安全组以拒绝所有入站和出站流量。此网络安全组将持久存在并可重复使用。网络安全组的名称为 Citrix.XenDesktop.IsolationGroup-GUID,其中 GUID 是随机生成的。
基于计算机配置文件的计算机目录
您可以使用计算机配置文件捕获 EC2 实例 (VM) 或启动模板版本中的硬件属性,并将其应用于预配的计算机。捕获的属性可以包括(例如)租用类型、实例类型、安全组、网络映射、EBS 卷属性、EBS 优化、CPU 选项、休眠功能以及其他受支持的 AWS 配置。
您可以使用 AWS EC2 实例 (VM) 或 AWS 启动模板版本作为计算机配置文件输入。
注意:
- EBS 卷属性仅从计算机配置文件派生。
- 仅支持实例元数据服务 (IMDS) V2,不支持 IMDS V1。有关信息,请参阅实例元数据服务版本 2 的工作原理。
AWS 租用
AWS 提供以下租用选项:共享租用(默认类型)和专用租用。共享租用意味着来自不同客户的多个 Amazon WorkSpaces Core 实例可能驻留在同一物理硬件上。专用租用意味着您的 Amazon WorkSpaces Core 实例仅在您已部署的其他实例所在的硬件上运行。
注意:
仅支持专用实例(目前不支持专用主机)。其他客户不使用同一块硬件。
租用类型从计算机配置文件捕获
当您使用 MCS 创建目录以在 AWS 中预配计算机时,租用类型将从计算机配置文件中捕获。
- 共享硬件:此设置适用于大多数部署。多个客户共享硬件,即使他们之间不进行交互。使用共享硬件是运行 Amazon EC2 实例最经济的选择。
- 专用实例:此设置更适用于具有特定安全或合规性要求的部署。使用专用实例,您仍然可以享受拥有独立于其他 AWS 客户的主机的好处,但无需支付整个主机的费用。您无需担心主机的容量,但实例的收费费率更高。此外,专用实例对自带许可证 (BYOL) 的支持有限。
创建目录
创建 Amazon WorkSpaces Core 托管实例目录需要准备好的映像和计算机配置文件。您可以使用 AWS VM 实例或 AWS 启动模板版本作为计算机配置文件输入。
您可以使用以下方式创建目录:
使用 Studio 创建目录
从映像节点创建计算机目录
使用映像节点中的创建目录选项,使用映像版本创建目录。
或者,您可以在计算机目录节点中创建目录时选择版本,将其链接到目录创建工作流中的准备好的映像选项。请参阅从计算机目录节点创建计算机目录。
要从映像节点创建 MCS 计算机目录,请执行以下操作:
- 选择映像版本,然后单击创建目录。在简介页面上单击下一步。
- 在计算机管理和映像页面上,设置会根据所选映像版本预先选择。在“映像”页面上,为所选的准备好的映像输入备注。
- 在以下页面上完成设置。
- 在摘要页面上,检查计算机目录的详细信息。输入计算机目录的名称和描述。单击完成。
- 转到计算机目录节点以查看创建的计算机目录。
从计算机目录节点创建计算机目录
要从计算机目录节点创建 MCS 计算机目录,请执行以下操作:
- 在左侧导航窗格中单击计算机目录。
- 单击创建计算机目录。此时将显示计算机目录设置页面。
- 在计算机类型页面上,为目录选择计算机类型,例如多会话操作系统。
-
在计算机管理页面上,选择以下设置:
- 选择已进行电源管理的计算机(例如,虚拟机或刀片式 PC)。
- 选择 Citrix 预配技术。然后,选择 Citrix Machine Creation Services™。
- 在资源字段中,选择您在创建主机连接时配置的资源(可用区),然后单击下一步。
- 在桌面体验页面上,选择用户登录时所需的随机或静态桌面。
-
在映像页面上,单击选择映像以选择计算机目录的准备好的映像。选择您创建的准备好的版本。单击映像版本名称。要查看有关所选映像版本的更多详细信息,请单击带下划线的版本号。单击完成。
与准备好的映像关联的计算机配置文件将显示,其硬件属性(例如,实例类型、租用类型、网络映射、安全组、卷属性)用于在目录中创建计算机。要将计算机配置文件源更改为其他 VM 或启动模板版本,请单击编辑按钮。
-
在虚拟机页面上:
- 输入目录的 VM 数量。
- 将显示默认计算机规范,该规范基于计算机配置文件。要更改它,请选择编辑图标并选择计算机规范。
- 在网卡页面上,为 VM 选择网卡(或 ENI)。
- 在计算机身份页面上,通过选择域并为要在此计算机目录中创建的 VM 创建新的 AD 帐户,为目录中的计算机配置本地 Active Directory 或混合 Azure Active Directory。预配的 VM 将加入所选域。指定要为 VM 创建的新 AD 帐户的帐户命名方案。单击下一步。
- 在域凭据页面上,单击输入凭据以提供所选域的凭据。出现提示时输入管理员级别的用户名和密码。如果您之前已按照我们的产品文档保存了域凭据,则也可以使用服务帐户。
- 单击其余页面,直到摘要页面。输入计算机目录的名称,然后选择完成以创建计算机目录。
使用 PowerShell 创建目录
使用准备好的映像版本规范和计算机配置文件创建目录
使用 New-ProvScheme 命令从准备好的映像版本规范创建 MCS 非持久性计算机目录。例如,
New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -IdentityPoolUid <Guid> [-CleanOnBoot $true] [-MachineProfile <string>] [-ProvisioningSchemeType “MCS”]
<!--NeedCopy-->
创建目录的完整 PowerShell 命令集示例
$Catalog = New-BrokerCatalog -AllocationType "Random" -IsRemotePC $False -MinimumFunctionalLevel "L7_20" -Name "wsccatalog" -PersistUserChanges "Discard" -ProvisioningType "MCS" -Scope @() -SessionSupport "MultiSession"
$IdentityPool = New-AcctIdentityPool -AllowUnicode -Domain "domainname" -IdentityPoolName "wsccatalog" -IdentityType "ActiveDirectory" -NamingScheme "aws##" -NamingSchemeType "Numeric" -Scope @()
$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'Mcs'"
$Task = New-ProvScheme -ProvisioningSchemeName wsccatalog -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -HostingUnitName azure -IdentityPoolName wsccatalog -CleanOnBoot -Scope @() -SecurityGroup @() -MachineProfile 'XdHyp:\HostingUnits\cvad-test-scalestress\us-east-1a.availabilityzone\machine-profile-instance i (i-0xxxxxxxx).vm' -RunAsynchronously
Get-ProvTask -TaskId $Task.TaskId
$ProvScheme = Get-ProvScheme -ProvisioningSchemeName wsccatalog
Set-BrokerCatalog -Name $Catalog.Name -ProvisioningSchemeId $ProvScheme.ProvisioningSchemeUid
<!--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" ` -ImageVersionSpecUid ‘24dfb047-e867-527g-896c-25664xxxxx1t’ ` -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 磁盘
您可以创建使用 AWS KMS 密钥(客户管理密钥和 AWS 管理密钥)的非持久性 VM 目录,这些密钥可用于加密操作系统磁盘和身份磁盘 (ID)。
- AWS 管理密钥每年自动轮换。
- 客户管理密钥可选择自动轮换,也可手动管理。
有关 KMS 密钥的更多信息,请参阅以下 AWS 文档:
要加密操作系统和 ID 磁盘,请配置以下其中一项:
- 使用已加密的准备好的映像(例如,从包含使用 KMS 密钥加密的 EBS 根卷的实例或快照创建的 AMI)
- 使用包含加密 EBS 根卷的计算机配置文件源(VM 或启动模板)。
限制
请考虑以下限制:
- MCS 目前仅支持准备好的映像 AMI 上的一个磁盘。
-
您不能直接加密现有的未加密 EBS 卷或快照,也不能修改现有加密卷的 KMS 密钥。为此,您必须:
- 创建该卷的新快照。
- 从该快照创建新卷
- 加密新卷。
请参阅以下 AWS 文档:
- 加密未加密资源
- EBS 卷自动或默认加密的限制:自动加密现有和新的 Amazon EBS 卷。
创建具有磁盘加密的目录
您可以使用以下方式创建具有磁盘加密的 MCS 计算机目录:
- 准备好的映像(使用映像管理从具有加密磁盘的主映像创建)
- 计算机配置文件
使用计算机配置文件输入时的注意事项包括:
- 计算机配置文件输入的 KMS 密钥优先于准备好的映像的 KMS 密钥。
- 如果未提供计算机配置文件输入,则使用准备好的映像 AMI 的 KMS 密钥来加密目录 VM 的磁盘。
- 如果计算机配置文件存在块设备映射,则准备好的映像模板 (AMI) 和计算机配置文件中存在的块设备必须匹配。例如,如果 AMI 在
/dev/sda1上定义了设备,则计算机配置文件也必须在/dev/sda1上定义设备。 - 如果计算机配置文件源中没有密钥且准备好的映像未加密,则目录 VM 的磁盘不会加密。
- 当准备好的映像已加密时,计算机配置文件源 VM 或启动模板必须具有加密的根卷才能被视为有效输入。
修改现有目录
您可以使用 Set-ProvScheme PowerShell 命令修改现有目录,使其具有:
- 包含新 KMS 密钥的卷的计算机配置文件输入。
- 使用映像管理从具有加密 AMI 的主映像创建的准备好的映像。
重要注意事项:
- 添加到目录的新 VM 的卷使用新的 KMS 密钥加密。
- 要在存在现有计算机配置文件时更新加密设置,请使用新的计算机配置文件运行
Set-ProvScheme。 - 您不能将现有目录从加密卷修改为未加密卷。
- 您不能从加密的准备好的映像 AMI 更新到未加密的准备好的映像 AMI。
为 VM 实例启用 NitroTPM 和 UEFI 安全启动
创建目录时,您现在可以选择启用 NitroTPM 和/或 UEFI 安全启动的准备好的映像 (AMI)。因此,目录中预配的 VM 也将启用 NitroTPM 和/或 UEFI 安全启动。此实施可确保 VM 的安全性和可信度。有关 NitroTPM 和 UEFI 安全启动的更多信息,请参阅 Amazon 文档。
限制
- 目前,您可以在除中国以外的所有 AWS 区域(包括 AWS GovCloud(美国)区域)中使用 NitroTPM 和安全启动。
- 您不能在现有目录上启用 NitroTPM 和 UEFI 安全启动。如果您需要启用 NitroTPM 和 UEFI 安全启动的目录,请创建一个新目录。
关键步骤
- 设置您的 AWS 环境。
- 创建到 AWS 的连接。
- 创建启用 NitroTPM 和/或 UEFI 安全启动的主映像 (AMI)。
- 从主映像创建准备好的映像。请参阅为 Amazon WorkSpaces Core 托管实例创建准备好的映像。
- 通过在 Citrix Studio 目录创建菜单中或在使用 PowerShell 命令创建预配方案时选择启用 NitroTPM 和 UEFI 安全启动的准备好的映像来创建计算机目录。
添加到所创建目录的 VM 已启用 NitroTPM 和 UEFI 安全启动。
创建支持 NitroTPM 和 UEFI 安全启动的 AMI
-
您可以从已启用 NitroTPM 和/或 UEFI 安全启动的 VM 创建 AMI。
- 使用 AWS Marketplace 映像创建实例。例如,在 aws-marketplace 上搜索
TPM-Windows_Server-2022-English-Full-Base on the aws-marketplace。 - 下载单会话或多会话 VDA。
- 从该 VM 创建 AMI。
- 使用 AWS Marketplace 映像创建实例。例如,在 aws-marketplace 上搜索
-
使用 register-image 命令:
--boot-mode (string) --tpm-support (string) <!--NeedCopy-->有关更多信息,请参阅 register-image。
请参阅以下 AWS 文档:
您可以从 Delivery Controller™ 主机打开 PowerShell 窗口,以检查特定项是否:
-
服务产品支持 NitroTPM 或 UEFI 安全启动
(Get-Item -Path “XDHyp:\HostingUnits\aws\T3 Medium Instance.serviceoffering”).AdditionalData.BootMode (Get-Item -Path “XDHyp:\HostingUnits\aws\T3 Medium Instance.serviceoffering”).AdditionalData.NitroTpmSupportVersions <!--NeedCopy--> -
模板支持 NitroTPM 或 UEFI 安全启动
(Get-HypInventoryItem -LiteralPath “XDHyp:\HostingUnits\aws” -ResourceType “template -Id “ID”).AdditionalData.BootMode (Get-HypInventoryItem -LiteralPath “XDHyp:\HostingUnits\aws” -ResourceType “template -Id “ID”).AdditionalData.TpmSupport <!--NeedCopy-->
更新现有目录的服务产品
您可以使用 Set-ProvScheme 更改现有目录的服务产品。此更改适用于新添加的 VM。但是,在以下情况下会收到错误:
| AMI 启动模式 | AMI 是否支持 Nitro TPM? | 服务产品是否支持 NitroTPM 和 UEFI 安全启动? |
|---|---|---|
| UEFI | No | No |
| Legacy BIOS | Yes | No |
| UEFI | Yes | No |
| UEFI Preferred | Yes | No |
复制 VM 上的标记
您可以将计算机配置文件中指定的网卡和磁盘(身份磁盘、回写缓存磁盘和操作系统磁盘)上的标记复制到 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 实例
您用作计算机配置文件 VM 的 AWS VM 实例必须兼容,以便计算机目录能够正确创建和运行。要列出可用作计算机配置文件输入 VM 的 AWS VM 实例,您可以使用 Get-HypInventoryItem 命令。该命令可以分页和筛选托管单元上可用的 VM 清单。
分页
Get-HypInventoryItem 支持两种分页模式:
- 分页模式使用
-MaxRecords和-Skip参数返回项目集:-
-MaxRecords:默认值为 1。这控制要返回的项目数。 -
-Skip:默认值为 0。这控制从管理程序列表中绝对开头(或绝对结尾)跳过的项目数。
-
- 滚动模式使用
-MaxRecords、-ForwardDirection和-ContinuationToken参数来允许记录滚动:-
-ForwardDirection:默认值为 True。这与-MaxRecords一起使用,以返回下一组匹配记录或上一组匹配记录。 -
-ContinuationToken:返回紧接在ContinuationToken中给定的项目之后(或之前,如果ForwardDirection为 false)但不包括该项目的项目。
-
分页示例:
-
要返回名称最低的计算机模板的单个记录。
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 至少具有其中一个标记,则该 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 匹配,则该 AMI 将包含在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-->
后续步骤
- 有关管理 Amazon WorkSpaces Core 目录的信息,请参阅管理 Amazon WorkSpaces Core 托管实例目录。
更多信息
- AWS 虚拟化环境
- 连接到 Amazon WorkSpaces Core 托管实例
- 映像管理
- 为 Amazon WorkSpaces Core 托管实例创建准备好的映像
- 有关 Amazon WorkSpaces Core GitHub PowerShell 示例,请参阅 citrix-mcs-sdk-samples-Amazon WorkSpaces Core。