Erstellen eines Maschinenkatalogs mit vorbereiteten Images in AWS EC2
Erstellen Sie vorbereitete Images und verwenden Sie diese, um einen MCS-Maschinenkatalog zu erstellen, und zwar mit:
- Studio
- PowerShell-Befehlen
Die wichtigsten Schritte zum Erstellen eines MCS-Maschinenkatalogs mit dem vorbereiteten Image sind:
- Erstellen Sie die Imagestruktur und die anfänglichen Imageversionen.
- Verwenden Sie die Imageversion als vorbereitetes Image, um einen Katalog zu erstellen.
Erstellen einer Imagestruktur und einer anfänglichen Imageversion
Verwenden von Studio
Gehen Sie wie folgt vor, um eine Imagestruktur und die anfängliche Imageversion zu erstellen:
- Navigieren Sie in Studio zum Knoten Images, und klicken Sie auf Create Image Definition. Klicken Sie auf der Seite Introduction auf Next.
- Geben Sie auf der Seite Image Definition den OS type und den Session type für die Imagestruktur an.
-
Wählen Sie auf der Seite Image die Resources (nur die für die festgelegte Verbindung anwendbaren Ressourcen werden aufgelistet), ein Masterimage, das als Vorlage zum Erstellen der Imageversion verwendet werden soll, und ein Maschinenprofil zum Erfassen von Hardwareeigenschaften aus. Wählen Sie ein Maschinenprofil aus, um Hardwareeigenschaften von einer VM-Instanz oder einer Startvorlagenversion zu erfassen.
Hinweis:
- Vergewissern Sie sich vor der Auswahl eines Images, dass auf dem Masterimage VDA 2311 oder höher installiert ist und der MCSIO-Treiber auf dem VDA installiert ist.
- Der Instance Metadata Service (IMDS) V1 und V2 werden beide unterstützt.
- Wählen Sie auf der Seite Machine Specification eine Maschinengröße aus. Die Maschinengröße des Maschinenprofils (ausgewählt auf der Seite Image) ist standardmäßig ausgewählt.
- Wählen oder fügen Sie auf der Seite NICs NICs für das Vorbereitungsimage hinzu. Wählen Sie für jede NIC ein zugehöriges VPC-Subnetz aus.
- Geben Sie auf der Seite Version Description eine Beschreibung für die erstellte anfängliche Imageversion ein.
- Überprüfen Sie auf der Seite Summary die Details der Imagestruktur und der erstellten anfänglichen Imageversion. Geben Sie einen Namen und eine Beschreibung für die Imagestruktur ein. Klicken Sie auf Finish.
Erstellen von Imageversionen
Imageversionen ermöglichen die Verwaltung verschiedener Iterationen oder Updates eines bestimmten Images. Diese Funktionalität ermöglicht es Ihnen, mehrere Versionen eines Images für verschiedene Zwecke zu verwalten.
Gehen Sie wie folgt vor, um Imageversionen aus der anfänglichen Imageversion zu erstellen:
Hinweis:
Die Hostingeinheit aller Imageversionen muss dieselbe sein.
- Navigieren Sie zum Knoten Images, wählen Sie eine Imageversion oder eine Imagestruktur aus, und klicken Sie auf Create Image Version.
- Auf der Seite Image definition können Sie die Hostingeinheit ändern und das Masterimage sowie das Maschinenprofil für diese Imageversion neu auswählen.
- Wenn die Konfiguration der Imageversion von der anfänglich konfigurierten Imageversion abweichen soll, konfigurieren Sie die Einstellungen auf den Seiten Machine Specification und NICs des Dialogfelds Create Image Version.
- Fügen Sie eine Beschreibung für die Imageversion hinzu. Klicken Sie auf Finish.
Hinweis:
Wenn die Erstellung der Imageversion aus irgendeinem Grund fehlschlägt, bietet die Registerkarte Troubleshoot unten eine Option zum Retry (Wiederholen).
Verwenden von PowerShell
Die detaillierten PowerShell-Befehle zum Erstellen einer Spezifikation für eine vorbereitete Imageversion lauten wie folgt:
-
Überprüfen Sie die verfügbaren Namen der Imagestrukturen mit dem Befehl
Test-ProvImageDefinitionNameAvailable. Beispiel:Test-ProvImageDefinitionNameAvailable -ImageDefinitionName <string[]> <!--NeedCopy--> -
Erstellen Sie eine Imagestruktur mit dem Befehl
New-ProvImageDefinition. Beispiel:New-ProvImageDefinition -ImageDefinitionName image1 -OsType Windows -VdaSessionSupport MultiSession <!--NeedCopy--> -
Erstellen Sie eine neue Konfiguration für die Imagestruktur in der angegebenen Hostingverbindung mit dem Befehl
Add-ProvImageDefinitionConnection.Add-ProvImageDefinitionConnection -ImageDefinitionName image1 -HypervisorConnectionName test-conn <!--NeedCopy--> -
Erstellen Sie eine Imageversion mit dem Befehl
New-ProvImageVersion. Beispiel:New-ProvImageVersion -ImageDefinitionName image1 -Description "version 1" <!--NeedCopy--> -
Fügen Sie der Imageversion eine Masterimageversionsspezifikation mit dem Befehl
Add-ProvImageVersionSpechinzu. Beispiel:Add-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -HostingUnitName aws -MasterImagePath "XDHyp:\HostingUnits\aws\win10-2411-ami (ami-00123456789abcdef).template”" <!--NeedCopy-->Hinweis:
Sie können nur eine Masterimageversionsspezifikation zu einer Imageversion für eine Hostingeinheit hinzufügen.
-
Erstellen Sie eine Spezifikation für eine vorbereitete Imageversion aus der Masterimageversionsspezifikation mit dem Befehl
New-ProvImageVersionSpec. Der ParameterSourceImageVersionSpecUidwird vom BefehlAdd-ProvImageVersionSpecabgeleitet. Beispiel:New-ProvImageVersionSpec -SourceImageVersionSpecUid 00000000-0000-0000-0000-00000000000 -MachineProfile 'XDHyp:\HostingUnits\aws\w2022-2411 (lt-00123456789abcdef).launchtemplate\lt-00123456789abcdef (1).launchtemplateversion' -RunAsynchronously <!--NeedCopy-->
Beispiel für den vollständigen Satz von PowerShell-Befehlen zum Erstellen einer Imagestruktur, einer Imageversion und einer Spezifikation für eine vorbereitete Imageversion:
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-->
Hinweis:
- Alle Imageversionsspezifikationen in einer Imagestruktur müssen derselben Hostingeinheit angehören.
- Eine Imageversion kann nur eine Masterimageversionsspezifikation und eine Spezifikation für eine vorbereitete Imageversion haben.
- Alle Imageversionsspezifikationen müssen ein Maschinenprofil haben.
Freigeben vorbereiteter Images über Verfügbarkeitszonen hinweg
Sie können jetzt ein einzelnes vorbereitetes Image über verschiedene Verfügbarkeitszonen hinweg, die an unterschiedliche Hostingeinheiten gebunden sind, innerhalb derselben AWS-Region für Ihre AWS EC2 freigeben. Dadurch können Sie ein vorbereitetes Image verwenden, um MCS-Maschinenkataloge in verschiedenen Verfügbarkeitszonen zu erstellen und zu aktualisieren.
Sie können ein einzelnes vorbereitetes Image verwalten und es verwenden, um Maschinenkataloge über mehrere Verfügbarkeitszonen hinweg, die an unterschiedliche Hostingeinheiten gebunden sind, zu erstellen und zu aktualisieren. Dies reduziert Ihren Verwaltungsaufwand für Images erheblich, gewährleistet die Konsistenz über Bereitstellungen hinweg und optimiert den Bereitstellungsprozess. Sie können auch vorhandene Maschinenkataloge nahtlos mit vorbereiteten Images aus einer anderen Verfügbarkeitszone aktualisieren.
Anwendungsfälle
-
Zentralisierte Imageverwaltung: Sie erstellen ein vorbereitetes Image in einer Verfügbarkeitszone (z. B.
us-east-1a). Sie können dieses Image dann für andere Verfügbarkeitszonen wieus-east-1boderus-east-1cinnerhalb derselben AWS-Regionus-east-1freigeben. Dies ermöglicht es einem einzigen Image, mehrere Hostingeinheiten zu bedienen und vereinfacht die Wartung für Sie. -
Effiziente Katalogerstellung und -aktualisierung: Sie können ein in
AZ 1(z. B.us-east-1a) erstelltes vorbereitetes Image verwenden, um neue Kataloge inAZ 1zu erstellen. Nachdem Sie dieses Image fürAZ 2(z. B.us-east-1b) freigegeben haben, können Sie das freigegebene Image inAZ 2verwenden, um Kataloge inAZ 2zu erstellen und zu aktualisieren. - Bereitstellung über Hostingeinheiten hinweg: Wenn Ihre Umgebung mehrere Hostingeinheiten unter derselben AWS-Region und demselben AWS-Konto aufweist, können Sie vorbereitete Images effizient zwischen diesen Hostingeinheiten freigeben.
Einschränkungen
- Regionsspezifische Freigabe: Sie können vorbereitete Images nur über Verfügbarkeitszonen innerhalb derselben AWS-Region freigeben. Eine Freigabe über verschiedene AWS-Regionen oder verschiedene AWS-Konten hinweg ist in der aktuellen Implementierung nicht möglich.
Wichtige Überlegungen
- Löschreihenfolge: Um eine Spezifikation einer ursprünglich vorbereiteten Image-Version zu löschen, müssen Sie zuerst alle ihre freigegebenen Image-Versionsspezifikationen löschen. Alternativ müssen Sie die ursprünglichen und freigegebenen Spezifikationen gleichzeitig löschen.
- Abhängigkeit der Image-Version: Wenn Sie eine Image-Version entfernen, müssen Sie zuerst alle Freigabekonfigurationen entfernen, die von dieser spezifischen Image-Version abhängen. Kataloge, die Sie aus dem ursprünglichen (nicht freigegebenen) Image erstellt haben, können intakt bleiben.
- Katalog-Abwärtskompatibilität: Sie können vorhandene Maschinenkataloge aktualisieren, die Sie vor der Einführung dieser Funktion bereitgestellt haben. Verwenden Sie vorbereitete Images, die Sie in einer anderen Verfügbarkeitszone als der, in der Sie den Katalog ursprünglich bereitgestellt haben, erstellt haben.
- Vollständige Löschung: Wenn Sie ein vorbereitetes Image löschen, können Sie es in keiner Verfügbarkeitszone mehr verwenden, in der Sie es freigegeben oder ursprünglich erstellt haben. Darüber hinaus kann eine vorbereitete Image-Version erst gelöscht werden, wenn alle an die vorbereitete Image-Version gebundenen Kataloge zuerst gelöscht wurden.
Voraussetzungen
Bevor Sie diese Funktion konfigurieren oder verwenden, stellen Sie sicher, dass Sie die folgenden Bedingungen erfüllen:
- Ihre Umgebung muss eine AWS EC2-Umgebung sein.
- Sie müssen mehrere Hosting-Einheiten (jede kann an verschiedene Verfügbarkeitszonen gebunden sein) innerhalb derselben AWS-Region und unter demselben AWS-Konto konfigurieren.
- Konfigurieren Sie die IAM-Berechtigung, wie im Abschnitt IAM-Berechtigungen beschrieben, um die Freigabe über dasselbe AWS-Konto hinweg sicherzustellen.
IAM-Berechtigungen
Um die Konto-ID für die aktuelle Verbindung abzurufen und die Freigabe über dasselbe AWS-Konto hinweg sicherzustellen, muss Ihr AWS-Konto die folgenden IAM-Berechtigungen enthalten:
{
`"Effect": "Allow",`
`"Action": "iam:GetAccountSummary",`
`"Resource": "*"`
}
<!--NeedCopy-->
Konfigurieren mit PowerShell
Sie können vorbereitete Images derzeit nur mithilfe von PowerShell-Befehlen über Verfügbarkeitszonen hinweg freigeben, die an verschiedene Hosting-Einheiten gebunden sind.
So geben Sie ein vorbereitetes Image frei
- Stellen Sie sicher, dass Sie die
ImageVersionSpecUiddes vorbereiteten Images haben, das Sie freigeben möchten. Sie können diese mitGet-ProvImageVersionSpecoder ähnlichenGet--Befehlen in PowerShell abrufen. - Bestimmen Sie den
HostingUnitNameder Verfügbarkeitszone, in der Sie das vorbereitete Image verfügbar machen möchten. Dies ist der Name der Hosting-Einheit, die Sie für diese spezifische Verfügbarkeitszone konfiguriert haben. -
Führen Sie den Befehl
Add-ProvImageVersionSpecHostingUnitaus: Verwenden Sie den folgenden PowerShell-Befehl. Ersetzen Sie<ImageVersionSpecUid>durch die Uid Ihres Images und<targetHostingUnitName>durch den Namen der Hosting-Einheit in der Ziel-Verfügbarkeitszone, für die Sie die Image-Versionsspezifikation freigeben möchten:Add-ProvImageVersionSpecHostingUnit -ImageVersionSpecUid <ImageVersionSpecUid> -HostingUnitName <targetHostingUnitName> <!--NeedCopy--> - Nach erfolgreicher Ausführung können Sie den Status des Images in der Studio-Benutzeroberfläche sehen, der anzeigt, dass Sie es mit der angegebenen Hosting-Einheit freigegeben haben.
So entfernen Sie die Freigabe eines vorbereiteten Images
- Stellen Sie sicher, dass Sie die
ImageVersionSpecUiddes vorbereiteten Images haben, dessen Freigabe Sie entfernen möchten. - Bestimmen Sie den
HostingUnitNameder Verfügbarkeitszone, aus der Sie das freigegebene Image entfernen möchten. -
Führen Sie den Befehl
Remove-ProvImageVersionSpecHostingUnitaus: Verwenden Sie den folgenden PowerShell-Befehl. Ersetzen Sie<ImageVersionSpecUid>durch die Uid Ihres Images und<targetHostingUnitName>durch den Namen der Hosting-Einheit in der Ziel-Verfügbarkeitszone, aus der Sie die Freigabe der Image-Versionsspezifikation entfernen möchten:Remove-ProvImageVersionSpecHostingUnit -ImageVersionSpecUid <ImageVersionSpecUid> -HostingUnitName <targetHostingUnitName> <!--NeedCopy-->
Maschinenkatalog erstellen
Studio verwenden
Maschinenkatalog über den Knoten „Images“ erstellen
Verwenden Sie die Option Katalog erstellen im Knoten Images, um einen Katalog mithilfe der Image-Version zu erstellen.
Alternativ können Sie die Version beim Erstellen eines Katalogs im Knoten Maschinenkataloge auswählen, wobei Sie auf die Option „Vorbereitetes Image“ im Workflow zur Katalogerstellung verweisen. Siehe Maschinenkatalog über den Knoten „Maschinenkataloge“ erstellen.
Um einen MCS-Maschinenkatalog über den Knoten Images zu erstellen, gehen Sie wie folgt vor:
- Wählen Sie eine Image-Version aus und klicken Sie auf Katalog erstellen. Klicken Sie auf der Seite Einführung auf Weiter.
- Auf den Seiten Maschinenverwaltung und Image sind die Einstellungen basierend auf der ausgewählten Image-Version vorausgewählt. Geben Sie auf der Seite „Image“ eine Notiz für das ausgewählte vorbereitete Image ein.
- Füllen Sie die Einstellungen auf den folgenden Seiten aus.
- Überprüfen Sie auf der Seite Zusammenfassung die Details des Maschinenkatalogs. Geben Sie einen Namen und eine Beschreibung für den Maschinenkatalog ein. Klicken Sie auf Fertig stellen.
- Gehen Sie zum Knoten Maschinenkataloge, um den erstellten Maschinenkatalog anzuzeigen.
Maschinenkatalog über den Knoten „Maschinenkataloge“ erstellen
Um einen MCS-Maschinenkatalog über den Knoten „Maschinenkataloge“ zu erstellen, gehen Sie wie folgt vor:
- Klicken Sie im linken Navigationsbereich auf Maschinenkataloge.
- Klicken Sie auf Maschinenkatalog erstellen. Die Seite Maschinenkatalog-Setup wird angezeigt.
- Wählen Sie auf der Seite Maschinentyp einen Maschinentyp für den Katalog aus, z. B. Multi-Session-Betriebssystem.
-
Wählen Sie auf der Seite Maschinenverwaltung die folgenden Einstellungen aus:
- Wählen Sie Maschinen, die energieverwaltet sind (z. B. virtuelle Maschinen oder Blade-PCs).
- Wählen Sie Citrix-Bereitstellungstechnologie. Wählen Sie dann Citrix Machine Creation Services™.
- Wählen Sie im Feld Ressourcen die Ressourcen (Verfügbarkeitszone) aus, die Sie beim Erstellen der Hostverbindung konfiguriert haben, und klicken Sie auf Weiter.
- Wählen Sie auf der Seite Desktop-Erfahrung entweder einen zufälligen oder statischen Desktop aus, den Benutzer beim Anmelden haben sollen. Wenn ein statischer Desktop ausgewählt ist, geben Sie zusätzlich an, ob Änderungen, die der Benutzer auf der lokalen Festplatte vornimmt, gespeichert werden sollen (persistent oder nicht-persistent).
-
Klicken Sie auf der Seite Image auf Image auswählen, um ein vorbereitetes Image für den Maschinenkatalog auszuwählen. Wählen Sie die von Ihnen erstellte vorbereitete Version aus. Klicken Sie auf den Namen der Image-Version. Um weitere Details zur ausgewählten Image-Version anzuzeigen, klicken Sie auf die Versionsnummer, die unterstrichen ist. Klicken Sie auf Fertig.
Das mit dem vorbereiteten Image verknüpfte Maschinenprofil wird angezeigt, und seine Hardwareeigenschaften (z. B. Instanztyp, Tenancy-Typ, Netzwerkzuordnungen, Sicherheitsgruppen, Volume-Eigenschaften) werden verwendet, um Maschinen in den Katalogen zu erstellen. Um die Maschinenprofilquelle in eine andere VM- oder Startvorlagenversion zu ändern, klicken Sie auf die Schaltfläche „Bearbeiten“.
-
Auf der Seite Virtuelle Maschinen:
- Geben Sie die Anzahl der VMs für den Katalog ein.
- Die Standard-Maschinenspezifikation wird angezeigt, die auf dem Maschinenprofil basiert. Um sie zu ändern, wählen Sie das Bearbeitungssymbol aus und wählen Sie eine Maschinenspezifikation.
- Wählen Sie auf der Seite NICs die NICs (oder ENIs) für die VMs aus.
- Konfigurieren Sie auf der Seite Maschinenidentitäten On-Premises Active Directory oder Microsoft Entra Hybrid Joined für die Maschinen im Katalog, indem Sie die Domäne auswählen und neue AD-Konten für die in diesem Maschinenkatalog zu erstellenden VMs erstellen. Die bereitgestellten VMs werden der ausgewählten Domäne beigetreten. Geben Sie das Kontenbenennungsschema für die neuen AD-Konten an, die für die VMs erstellt werden sollen. Klicken Sie auf Weiter.
- Klicken Sie auf der Seite Domänenanmeldeinformationen auf Anmeldeinformationen eingeben, um die Anmeldeinformationen für die ausgewählte Domäne bereitzustellen. Geben Sie bei Aufforderung einen Benutzernamen und ein Kennwort mit Administratorrechten ein. Sie können auch ein Dienstkonto verwenden, wenn Sie Domänenanmeldeinformationen bereits zuvor gespeichert haben, indem Sie unsere Produktdokumentation befolgen.
- Klicken Sie sich durch die verbleibenden Seiten bis zur Seite Zusammenfassung. Geben Sie einen Namen für den Maschinenkatalog ein und wählen Sie Fertig stellen, um den Maschinenkatalog zu erstellen.
PowerShell verwenden
Katalog mit einer vorbereiteten Image-Versionsspezifikation und einem Maschinenprofil erstellen
-
Erstellen Sie einen nicht-persistenten MCS-Maschinenkatalog aus der vorbereiteten Image-Versionsspezifikation mithilfe des Befehls
New-ProvScheme. Zum Beispiel:New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -IdentityPoolUid <Guid> [-CleanOnBoot $true] [-MachineProfile <string>] [-ProvisioningSchemeType “MCS”] <!--NeedCopy--> -
Erstellen Sie einen persistenten MCS-Maschinenkatalog aus der vorbereiteten Image-Versionsspezifikation mithilfe des Befehls
New-ProvScheme. Zum Beispiel:New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -IdentityPoolUid <Guid> [-CleanOnBoot $false] [-MachineProfile <string>] [-ProvisioningSchemeType “MCS”] <!--NeedCopy-->
Beispiel für den vollständigen Satz von PowerShell-Befehlen zum Erstellen eines Katalogs:
$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-->