创建 AWS 目录
创建计算机目录介绍了用于创建计算机目录的向导。以下信息涵盖了特定于 AWS 虚拟化环境的详细信息。
注意:
在创建 AWS 目录之前,您需要完成创建与 AWS 的连接。请参阅与 AWS 的连接。
映像准备期间的网络设置
在映像准备期间,将在原始 VM 的基础上创建准备虚拟机 (VM)。此准备 VM 已与网络断开连接。为了断开网络与准备 VM 的连接,需要创建一个网络安全组以拒绝所有入站和出站流量。此网络安全组仍然存在并可重复使用。网络安全组的名称为 Citrix.XenDesktop.IsolationGroup-GUID
,其中 GUID 是随机生成的。
配置 AWS 租赁
AWS 提供以下租赁选项:
- 共享租赁(默认类型):意味着来自不同客户的多个 Amazon EC2 实例可能位于同一个物理硬件上。
- 专用租赁:您的 EC2 实例仅与已部署的其他实例一起在硬件上运行。其他客户不使用同一个硬件。
您可以使用 MCS 通过 PowerShell 来预配 AWS 专用主机。
使用 PowerShell 配置 AWS 专用主机租赁
可以使用通过 PowerShell 定义的主机租赁创建计算机目录。
Amazon [EC2] 专用主机是具有完全专用的 [EC2] 实例容量的物理服务器,允许您按套接字或 VM 使用现有软件许可证。
专用主机具有基于实例类型的预设利用率。例如,针对 C4 大型实例类型分配的一个专用主机最多运行 16 个实例。请参阅 AWS 站点以了解详细信息。
用于预配到 AWS 主机的要求包括:
- 导入的 BYOL(自带许可)映像 (AMI)。通过专用主机,使用并管理您的现有许可证。
- 分配了具有足够利用率的专用主机,可满足预配请求。
- 启用自动放置。
要使用 PowerShell 预配到 AWS 中的专用主机,请使用参数 TenancyType
设置为主机的 New-ProvScheme cmdlet。
请参阅 Citrix 开发人员文档以了解详细信息。
从 AMI 中捕获计算机属性
创建目录以在 AWS 中使用 Machine Creation Services (MCS) 预配计算机时,可以选择一个 AMI 来表示该目录的主映像/黄金映像。在该 AMI 中,MCS 使用磁盘的快照。在早期版本中,如果您希望在计算机上使用角色或标记,则可以使用 AWS 控制台对其进行单独设置。默认启用此功能。
提示:
您必须拥有与 AMI 关联的 VM,才能使用 AWS 实例属性捕获功能。
为了改进此过程,MCS 从从中获取 AMI 的实例中读取属性,并将计算机的标识和访问管理 (IAM) 角色和标记应用于为给定目录预配的计算机。使用此可选功能时,目录创建过程会查找选定的 AMI 源实例,读取一组有限的属性。然后,这些属性将存储在 AWS 启动模板中,该模板用于为该目录预配计算机。目录中的任何计算机都会继承捕获的实例属性。
捕获的属性包括:
- IAM 角色 - 应用于预配的实例。
- 标记 - 应用于预配的实例、其磁盘和 NIC。这些标记应用到临时 Citrix 资源,包括:S3 存储桶和对象、AMI、快照和启动模板。
提示:
临时 Citrix 资源的标记是可选的,可使用自定义属性
AwsOperationalResourcesTagging
进行配置。
捕获 AWS 实例属性
在为 AWS 托管连接创建预配方案时,可以通过指定自定义属性 AwsCaptureInstanceProperties
来使用此功能:
New-ProvScheme -CustomProperties "AwsCaptureInstanceProperties,true" …<standard provscheme parameters
请参阅 Citrix 开发人员文档以了解详细信息。
注意:
AwsCaptureInstanceProperties
已被弃用。
从计算机配置文件中捕获计算机属性
创建目录以使用 MCS 预配 AWS 计算机时,可以使用计算机配置文件来预设特定的计算机属性设置。
为此,请遵循以下步骤:
- 将计算机配置文件存储在与创建此目录的资源相同的可用性区域中。
- 在目录创建向导的计算机模板页面上,选择使用计算机配置文件。将显示与您选择的资源位于同一可用区域中的计算机配置文件。
- 根据需要选择计算机配置文件。
注意:
可以使用计算机配置文件或 AMI 来捕获计算机属性。在 Web Studio 中,当您选择使用计算机配置文件时,将计算机模板属性应用到虚拟机选项会自动隐藏。
标记 AWS 运行资源
在创建目录以使用 MCS 在 AWS 中预配计算机时,可以控制是否将 IAM 角色和标记属性应用到这些计算机。还可以控制是否将计算机标记应用到运行资源。
Amazon Machine Image (AMI) 表示用于在 Amazon 云环境中创建虚拟机的一种虚拟设备,通常称为 EC2。可以使用 AMI 部署使用 EC2 环境的服务。创建目录以使用适用于 AWS 的 MCS 预配计算机时,可以选择 AMI 作为该目录的黄金映像。
重要:
使用运行资源标记需要通过捕获实例属性和启动模板来创建目录。
要创建 AWS 目录,必须首先为希望成为黄金映像的实例创建 AMI。MCS 从该实例读取标记并将其合并到启动模板中。然后,启动模板标记将应用于在 AWS 环境中创建的所有 Citrix 资源,包括:
- 虚拟机
- VM 磁盘
- VM 网络接口
- S3 存储桶
- S3 对象
- 启动模板
- AMI
标记运行资源
要使用 PowerShell 标记资源,请执行以下操作:
- 从 DDC 主机打开 PowerShell 窗口。
- 运行命令
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 控制台上,您在 Launch Template Version Resource Tags(启动模板版本资源标记)下看不到Tag Network Interfaces(标记网络接口)值。但是,您可以运行 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-ProvScheme
和Set-ProvScheme
命令中添加计算机硬件属性参数,则参数中提供的值将覆盖计算机配置文件中的值。 - 如果您将
AwsCaptureInstanceProperties
设置为true
,但未设置MachineProfile
属性,则仅捕获 IAM 角色和标记。 -
您不能同时设置
AwsCaptureInstanceProperties
和MachineProfile
。**注意:
AwsCaptureInstanceProperties
已被弃用。 -
必须明确提供以下属性的值:
- TenancyType
- 安全组
- NIC 或虚拟网络
- 仅当启用了
AwsCaptureInstanceProperties
或者指定了计算机配置文件时才能启用AwsOperationalResourcesTagging
。
创建 MCS 计算机目录后的重要注意事项:
- 只有添加到目录中的新 VM 会受到更改的影响。
- 您无法将目录从基于计算机配置文件的目录更改为基于非计算机配置文件的目录。
使用计算机配置文件创建计算机目录
要使用计算机配置文件创建计算机目录,请执行以下操作:
- 打开 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-->
- 完成目录创建。有关详细信息,请参阅 Citrix PowerShell SDK。
要更新最初使用计算机配置文件预配的目录上的计算机配置文件,请执行以下操作:
-
运行
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-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-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-->
-
将预配方案注册为代理目录。例如:
New-BrokerCatalog -Name "MPLT1" ` -AllocationType Random ` -Description "Machine profile catalog" ` -ProvisioningSchemeId fe7df345-244e-4xxxx-xxxxxxxxx ` -ProvisioningType Mcs ` -SessionSupport MultiSession ` -PersistUserChanges Discard <!--NeedCopy-->
- 完成目录创建。有关详细信息,请参阅 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
:返回紧随其后(如果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-->