Citrix DaaS™

使用 AWS EC2 中的预备映像创建目录

  • 创建预备映像,并使用这些预备映像通过以下方式创建 MCS 计算机目录:

  • Studio
  • PowerShell 命令

使用预备映像创建 MCS 计算机目录的关键步骤如下:

  1. 创建映像定义和初始映像版本。
  2. 使用映像版本作为预备映像来创建目录。

创建映像定义和初始映像版本

使用 Studio

要创建映像定义和初始映像版本,请执行以下操作:

  1. 在 Studio 中,转到映像节点,然后单击创建映像定义。在简介页面上单击下一步
  2. 映像定义页面上,为映像定义指定操作系统类型会话类型
  3. 映像页面上,选择资源(仅列出适用于所设置连接的资源)、用作创建映像版本模板的主映像,以及用于捕获硬件属性的计算机配置文件。选择计算机配置文件以从 VM 实例或启动模板版本捕获硬件属性。

    注意:

    • 在选择映像之前,请验证主映像是否已安装 VDA 2311 或更高版本,并且 VDA 上已安装 MCSIO 驱动程序。
    • 实例元数据服务 (IMDS) V1 和 V2 均受支持。
  4. 计算机规范页面上,选择计算机大小。默认选择计算机配置文件(在映像页面上选择)的计算机大小。
  5. NIC 页面上,为准备映像选择或添加 NIC。对于每个 NIC,选择关联的 VPC 子网。
  6. 版本描述页面上,输入所创建的初始映像版本的描述。
  7. 摘要页面上,检查映像定义和所创建的初始映像版本的详细信息。输入映像定义的名称和描述。单击完成

创建映像版本

映像版本允许管理特定映像的不同迭代或更新。此功能使您能够为不同目的维护映像的多个版本。

要从初始映像版本创建映像版本,请执行以下操作:

注意:

所有映像版本的托管单元必须相同。

  1. 转到映像节点,选择一个映像版本或映像定义,然后单击创建映像版本
  2. 映像定义页面上,您可以更改托管单元,并重新选择该映像版本的主映像和计算机配置文件。
  3. 如果希望映像版本的配置与初始配置的映像版本不同,请在创建映像版本对话框的计算机规范NIC 页面上配置设置。
  4. 添加映像版本的描述。单击完成

注意:

如果映像版本创建因任何原因失败,底部的故障排除选项卡会提供重试选项。

使用 PowerShell

创建预备映像版本规范的详细 PowerShell 命令如下:

  1. 使用 Test-ProvImageDefinitionNameAvailable 命令检查可用的映像定义名称。例如:

    
    Test-ProvImageDefinitionNameAvailable -ImageDefinitionName <string[]>
    
    <!--NeedCopy-->
    
  2. 使用 New-ProvImageDefinition 命令创建映像定义。例如:

    
    New-ProvImageDefinition -ImageDefinitionName image1 -OsType Windows -VdaSessionSupport MultiSession
    
    <!--NeedCopy-->
    
  3. 使用 Add-ProvImageDefinitionConnection 命令在指定的托管连接中为映像定义创建新配置。

    
    Add-ProvImageDefinitionConnection -ImageDefinitionName image1 -HypervisorConnectionName test-conn
    
    <!--NeedCopy-->
    
  4. 使用 New-ProvImageVersion 命令创建映像版本。例如:

    
    New-ProvImageVersion -ImageDefinitionName image1 -Description "version 1"
    
    <!--NeedCopy-->
    
  5. 使用 Add-ProvImageVersionSpec 命令将主映像版本规范添加到映像版本。例如:

    
    Add-ProvImageVersionSpec -ImageDefinitionName  image1  -ImageVersionNumber  1 -HostingUnitName aws -MasterImagePath "XDHyp:\HostingUnits\aws\win10-2411-ami (ami-00123456789abcdef).template”"
    
    <!--NeedCopy-->
    

    注意:

    对于一个托管单元,您只能将一个主映像版本规范添加到一个映像版本。

  6. 使用 New-ProvImageVersionSpec 命令从主映像版本规范创建预备映像版本规范。SourceImageVersionSpecUid 参数派生自 Add-ProvImageVersionSpec 命令。例如:

    ```

  • New-ProvImageVersionSpec
  • -SourceImageVersionSpecUid 00000000-0000-0000-0000-00000000000
  • -MachineProfile ‘XDHyp:\HostingUnits\aws\w2022-2411 (lt-00123456789abcdef).launchtemplate\lt-00123456789abcdef (1).launchtemplateversion’ -RunAsynchronously

    ```

创建映像定义、映像版本和预备映像版本规范的完整 PowerShell 命令集示例


New-ProvImageDefinition -ImageDefinitionName image1 -OsType Windows -VdaSessionSupport MultiSession

Add-ProvImageDefinitionConnection -ImageDefinitionName image1 -HypervisorConnectionName aws-CustomProperties $CustomProperties

$imageVersion = New-ProvImageVersion -ImageDefinitionName image1 -Description "version 1"

$SourceImageVersionSpec = Add-ProvImageVersionSpec -ImageVersionUid $imageVersion.ImageVersionUid `
    -HostingUnitUid $hostingunit.HostingUnitUid `
    -MasterImagePath "XDHyp:\HostingUnits\aws\win10-2411-ami (ami-00123456789abcdef).template”

New-ProvImageVersionSpec -MachineProfile 'XDHyp:\HostingUnits\aws\w2022-2411 (lt-00123456789abcdef).launchtemplate\lt-00123456789abcdef (1).launchtemplateversion' -SourceImageVersionSpecUid $SourceImageVersionSpec.ImageVersionSpecUid
Add-ProvImageVersionSpecHostingUnit -ImageVersionSpecUid 00000000-0000-0000-0000-00000000000-HostingUnitName aws
$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageVersionUid $imageVersion.ImageVersionUid | Where SourceImageVersionSpecUid-eq $SourceImageVersionSpec.ImageVersionSpecUid

<!--NeedCopy-->

注意:

  • 映像定义中的所有映像版本规范必须属于同一托管单元。
  • 一个映像版本只能有一个主映像版本规范和一个预备映像版本规范。
  • 所有映像版本规范都必须具有计算机配置文件。

跨可用区和区域共享预备映像

现在,您可以在同一 AWS 区域内或不同区域中,跨不同可用区(绑定到不同托管单元)共享单个预备映像,以用于您的 AWS EC2 环境。这使您可以使用一个预备映像在各种可用区和区域中创建和更新 MCS 计算机目录。当跨不同区域中的不同可用区共享时,预备映像版本将从原始区域复制到目标区域。

您可以维护单个预备映像,并使用它在绑定到不同托管单元的多个可用区和区域中创建和更新计算机目录。这显著降低了映像管理开销,确保了跨部署的一致性,并简化了预配过程。您还可以使用来自不同可用区或区域的预备映像无缝更新现有计算机目录。

用例

  • 集中式映像管理: 您在一个可用区(例如,us-east-1a)中创建预备映像。然后,您可以将此映像共享到同一 us-east-1 AWS 区域内的其他可用区(例如,us-east-1b)或不同 us-west-1 区域中的 us-west-1a。这允许单个映像服务于多个托管单元,并为您简化了维护。
  • 高效的目录创建和更新: 您可以使用在 AZ 1(例如,us-east-1a)中创建的预备映像在 AZ 1 中创建新目录。将此映像共享到 AZ 2(例如,us-east-1b)后,您可以使用 AZ 2 中的共享映像在 AZ 2 中创建和更新目录。
  • 跨托管单元和托管连接部署: 如果您的环境在相同或不同的 AWS 区域下有多个托管单元,您可以在这些托管单元之间高效地共享预备映像。

限制

  • 区域特定共享: 您只能在同一 AWS 区域内的可用区之间共享准备好的映像。在当前实施中,您无法跨不同 AWS 区域或不同 AWS 账户进行共享。

重要注意事项

  • 删除顺序: 要删除原始准备好的映像版本规范,您必须首先删除其所有共享映像版本规范。或者,您必须同时删除原始和共享规范。
  • 映像版本依赖性: 删除映像版本时,必须首先删除依赖于该特定映像版本的任何共享配置。您从原始(未共享)映像创建的目录可以保持不变。
  • 目录向后兼容性: 您可以更新在此功能推出之前部署的现有计算机目录。使用您在与最初部署目录的可用区或区域不同的可用区或区域中创建的准备好的映像。
  • 彻底删除: 删除准备好的映像后,您将无法再在共享或最初创建它的任何可用区中使用它。此外,除非首先删除所有绑定到该准备好的映像版本的目录,否则无法删除准备好的映像版本。

先决条件

在配置或使用此功能之前,请确保满足以下条件:

  • 您的环境必须是 AWS EC2 环境。
  • 您必须在同一 AWS 账户下配置多个托管单元(每个单元可以绑定到不同的可用区)和主机连接(每个连接可以绑定到不同的区域)。

使用 PowerShell 进行配置

目前,您只能使用 PowerShell 命令跨绑定到不同托管单元的可用区共享准备好的映像。

共享准备好的映像

  1. 确保您拥有要共享的准备好的映像的 ImageVersionSpecUid。您可以使用 Get-ProvImageVersionSpec 或 PowerShell 中的类似 Get- 命令检索此信息。
  2. 确定您要在其中提供准备好的映像的可用区(可以是同一区域或不同区域)的 HostingUnitName。这是您为该特定可用区配置的托管单元的名称。
  3. 运行 Add-ProvImageVersionSpecHostingUnit 命令: 使用以下 PowerShell 命令。将 <ImageVersionSpecUid> 替换为映像的 Uid,并将 <targetHostingUnitName> 替换为目标可用区中您要共享映像版本规范的托管单元的名称:

    
    Add-ProvImageVersionSpecHostingUnit -ImageVersionSpecUid <ImageVersionSpecUid> -HostingUnitName <targetHostingUnitName>
    
    <!--NeedCopy-->
    
  4. 成功执行后,您可以在 Studio UI 中看到映像的状态,指示您已将其与指定的托管单元共享。
  • 取消共享准备好的映像

    1. 确保您拥有要取消共享的准备好的映像的 ImageVersionSpecUid
  1. 确定您要从中删除共享映像的可用区的 HostingUnitName
  2. 运行 Remove-ProvImageVersionSpecHostingUnit 命令: 使用以下 PowerShell 命令。将 <ImageVersionSpecUid> 替换为映像的 Uid,并将 <targetHostingUnitName> 替换为目标可用区中您要取消共享映像版本规范的托管单元的名称:

    
    Remove-ProvImageVersionSpecHostingUnit -ImageVersionSpecUid <ImageVersionSpecUid> -HostingUnitName <targetHostingUnitName>
    
    <!--NeedCopy-->
    

创建计算机目录

使用 Studio

从“映像”节点创建计算机目录

使用“映像”节点中的“创建目录”选项,使用映像版本创建目录。

或者,您可以在“计算机目录”节点中创建目录时选择版本,在目录创建工作流中链接到准备好的映像选项。请参阅从“计算机目录”节点创建计算机目录

要从“映像”节点创建 MCS 计算机目录,请执行以下操作:

  1. 选择一个映像版本,然后单击“创建目录”。在“简介”页面上单击“下一步”
  2. “计算机管理”“映像”页面上,设置会根据所选映像版本预先选择。在“映像”页面上,为所选的准备好的映像输入备注。
  3. 完成后续页面上的设置。
  4. “摘要”页面上,检查计算机目录的详细信息。输入计算机目录的名称和描述。单击“完成”
  5. 转到“计算机目录”节点以查看创建的计算机目录。

从“计算机目录”节点创建计算机目录

要从“计算机目录”节点创建 MCS 计算机目录,请执行以下操作:

  1. 在左侧导航窗格中单击“计算机目录”
  2. 单击“创建计算机目录”。此时将显示“计算机目录设置”页面。
  3. “计算机类型”页面上,为目录选择计算机类型,例如多会话操作系统
  4. “计算机管理”页面上,选择以下设置:

    1. 选择“已进行电源管理的计算机(例如,虚拟机或刀片式 PC)”
    2. 选择“Citrix 预配技术”。然后,选择 Citrix Machine Creation Services™
    3. “资源”字段中,选择您在创建主机连接时配置的资源(可用区),然后单击“下一步”
  5. “桌面体验”页面上,选择用户登录时希望拥有的随机桌面或静态桌面。如果选择了静态桌面,请进一步指定是否要保存用户在本地磁盘上所做的更改(持久性或非持久性)。
  6. “映像”页面上,单击“选择映像”以为计算机目录选择准备好的映像。选择您创建的准备好的版本。单击映像版本名称。要查看有关所选映像版本的更多详细信息,请单击带下划线的版本号。单击“完成”

    与准备好的映像关联的计算机配置文件将显示,其硬件属性(例如,实例类型、租用类型、网络映射、安全组、卷属性)用于在目录中创建计算机。要将计算机配置文件源更改为另一个 VM 或启动模板版本,请单击编辑按钮。

  7. “虚拟机”页面上:

    1. 输入目录的 VM 数量。
    2. 将显示默认计算机规范,该规范基于计算机配置文件。要更改它,请选择编辑图标并选择计算机规范。
  8. “NIC”页面上,为 VM 选择 NIC(或 ENI)。
  9. “计算机身份”页面上,通过选择域并为将在此计算机目录中创建的 VM 创建新的 AD 账户,为目录中的计算机配置本地 Active Directory 或 Microsoft Entra 混合加入。预配的 VM 将加入所选域。指定将为 VM 创建的新 AD 账户的账户命名方案。单击“下一步”
  10. “域凭据”页面上,单击“输入凭据”以提供所选域的凭据。出现提示时输入管理员级别的用户名和密码。如果您之前已按照我们的产品文档保存了域凭据,也可以使用服务账户。
  11. 单击其余页面,直到“摘要”页面。输入计算机目录的名称,然后选择“完成”以创建计算机目录。

使用 PowerShell

使用准备好的映像版本规范和计算机配置文件创建目录

  • 使用 New-ProvScheme 命令从准备好的映像版本规范创建 MCS 非持久性计算机目录。例如:

    
     New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -IdentityPoolUid <Guid> [-CleanOnBoot $true] [-MachineProfile <string>] [-ProvisioningSchemeType “MCS”]
    
     <!--NeedCopy-->
    
  • 使用 New-ProvScheme 命令从准备好的映像版本规范创建 MCS 持久性计算机目录。例如:

    
     New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -IdentityPoolUid <Guid> [-CleanOnBoot $false] [-MachineProfile <string>] [-ProvisioningSchemeType “MCS”]
    
     <!--NeedCopy-->
    

创建目录的完整 PowerShell 命令集示例:


$Catalog = New-BrokerCatalog  -AllocationType "Random"  -IsRemotePC $False  -MinimumFunctionalLevel "L7_20" -Name "awscatalog" -PersistUserChanges "Discard" -ProvisioningType "MCS" -Scope @() -SessionSupport "MultiSession"

$IdentityPool = New-AcctIdentityPool  -AllowUnicode  -Domain "domainname" -IdentityPoolName "awscatalog" -IdentityType "ActiveDirectory"  -NamingScheme "aws##" -NamingSchemeType "Numeric" -Scope @()

$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'Mcs'"

$Task = New-ProvScheme -ProvisioningSchemeName awscatalog -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -HostingUnitName aws -IdentityPoolName awscatalog -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 awscatalog

Set-BrokerCatalog -Name $Catalog.Name -ProvisioningSchemeId $ProvScheme.ProvisioningSchemeUid

<!--NeedCopy-->

后续步骤

更多信息

使用 AWS EC2 中的预备映像创建目录