Tutorial: Erstellen eines benutzerdefinierten Linux-basierten AppStream-2.0-Abbild - Amazon AppStream 2.0

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tutorial: Erstellen eines benutzerdefinierten Linux-basierten AppStream-2.0-Abbild

Diese Anleitung beschreibt, wie Sie ein benutzerdefiniertes Linux-basiertes Amazon-AppStream-2.0-Abbild erstellen, das Anwendungen enthält, die Sie an Ihre Benutzer streamen können.

Schritt 1: Installieren von Linux-Anwendungen auf dem Image Builder

In diesem Schritt stellen Sie eine Verbindung zu einem Linux Image Builder her und installieren dort Ihre Anwendungen.

So installieren Sie Anwendungen auf dem Image Builder
  1. Stellen Sie eine Verbindung mit dem Image Builder her, indem Sie einen der folgenden Schritte ausführen:

  2. Installieren Sie die benötigten Anwendungen. Öffnen Sie zunächst die Terminal-Anwendung und führen Sie den folgenden Befehl aus, um zum Beispiel einen Chromium-Browser aus einem öffentlichen yum-Repository zu installieren:

    [ImageBuilderAdmin]$ sudo yum update && sudo yum install chromium.x86_64

    Anmerkung

    Laden Sie Anwendungen nur von vertrauenswürdigen Websites herunter und installieren Sie sie.

Schritt 2: Generieren der Manifestdatei zur Anwendungsoptimierung

In diesem Schritt erstellen Sie eine Manifestdatei für jede Anwendung, die Sie in Schritt 1 installiert haben.

So erstellen Sie eine Manifestdatei zur Optimierung der Startleistung einer Anwendung
  1. Stellen Sie sicher, dass die Anwendung (z. B. Chromium), die Sie optimieren möchten, gestartet ist und ausgeführt wird.

  2. Führen Sie in einem Terminalfenster den folgenden Befehl aus, um die mit der Anwendung verbundenen Prozesse aufzulisten:

    [ImageBuilderAdmin]$ ps -ef | grep chromium

  3. Suchen Sie die übergeordnete Stamm-PID in der Ausgabe des obigen Befehls. Nachfolgend sehen Sie ein Beispiel für eine Ausgabe. Die übergeordnete Stamm-PID lautet 16712:

    [ImageBuilderAdmin]$ ps -ef | grep chromium ImageBu+ 16712 4128 0 Aug26 ? 00:00:44 /usr/lib64/chromium- browser/chromium-browser --enable-plugins --enable-extensions -- enable-user- scripts --enable-printing --enable-gpu-rasterization -- enable-sync --auto-ssl- client-auth ImageBu+ 16726 16712 0 Aug26 ? 00:00:00 /usr/lib64/chromium- browser/chromium-browser --type=zygote --no-zygote-sandbox ImageBu+ 16727 16712 0 Aug26 ? 00:00:00 /usr/lib64/chromium- browser/chromium- browser --type=zygote ImageBu+ 16731 16727 0 Aug26 ? 00:00:00 /usr/lib64/chromium- browser/chromium-browser --type=zygot
  4. Führen Sie die Anwendung weiter aus und stellen Sie sicher, dass Sie die ersten Komponenten verwenden, die von Ihren Benutzern benötigt werden. Auf diese Weise wird sichergestellt, dass diese Komponenten durch den Optimierungsvorgang erfasst werden.

  5. Erstellen Sie eine Skriptdatei (z. B. ~/getfilestool.sh) mit dem folgenden Inhalt:

    #!/bin/bash ## usage getfilestool.sh $pid lsof -p $(pstree -p $1 | grep -o '([0-9]\+)' | grep -o '[0-9]\+' | tr '\012' ,)|grep REG | sed -n '1!p' | awk '{print $9}'|awk 'NF'
  6. Stellen Sie sicher, dass die Datei ausgeführt werden kann, indem Sie den folgenden Befehl ausführen:

    [ImageBuilderAdmin]$ chmod u+x ~/getfilestool.sh

  7. Führen Sie den folgenden Befehl aus, um alle laufenden Dateien des in Schritt 3 gefundenen übergeordneten Root-Prozesses zu erfassen und in einer temporären Manifestdatei zu speichern:

    [ImageBuilderAdmin]$ sudo ~/getfilestool.sh 16712 > /tmp/chromium-manifest.txt

  8. Überprüfen Sie den Inhalt des Optimierungsmanifests, bei dem es sich um eine durch Zeilen getrennte Textdatei für die einzelnen Anwendungen handelt.

Schritt 3: Erstellen eines AppStream-2.0-Anwendungskatalogs

In diesem Schritt verwenden Sie das CLI-Tool AppStreamImageAssistant im Image Builder, um einen AppStream-2.0-Anwendungskatalog zu erstellen, indem Sie Anwendungen für Ihr Abbild angeben. Für jede Anwendung, die Sie streamen möchten, können Sie den Namen, den Anzeigenamen, die ausführbare Datei, die gestartet werden soll, und das Symbol, das angezeigt werden soll, angeben.

So erstellen Sie einen AppStream-2.0-Anwendungskatalog
  1. Öffnen Sie Terminal auf dem Image-Builder-Desktop entweder von der Seitenleiste aus oder indem Sie das App-Raster öffnen.

  2. Führen Sie AppStreamImageAssistant --help aus, um die Liste der verfügbaren Befehle anzuzeigen. Sie werden diese Befehle verwenden, um Anwendungen hinzuzufügen und ein Abbild zu erstellen.

  3. Führen Sie den folgenden Befehl aus, um eine installierte Anwendung (z. B. Chromium) zur Anwendungsliste für AppStream-2.0-Benutzer hinzuzufügen:

    AppStreamImageAssistant add-application \ --name Chromium \ --absolute-app-path /usr/lib64/chromium-browser/chromium-browser \ --display-name Chromium \ --absolute-icon-path /usr/share/icons/hicolor/256x256/apps/chromium-browser.png \ --absolute-manifest-path /tmp/chromium-manifest.txt

    Alternativ können Sie auch den folgenden Befehl ausführen:

    AppStreamImageAssistant add-application \ --name="Chromium" \ --absolute-app-path="/usr/lib64/chromium-browser/chromium-browser" \ --display-name="Chromium" \ --absolute-icon-path="/usr/share/icons/hicolor/256x256/apps/chromium-browser.png" \ --absolute-manifest-path="/tmp/chromium-manifest.txt"
  4. Wiederholen Sie Schritt 3 für jede weitere Anwendung, um weitere Anwendungen hinzuzufügen.

  5. Führen Sie den folgenden Befehl aus, um die Liste der Anwendungen anzuzeigen, die dem Katalog zusammen mit Metadaten wie Symbolpfaden und Startparametern hinzugefügt wurden:

    AppStreamImageAssistant list-applications

  6. Führen Sie den folgenden Befehl aus, um Anwendungen aus dem Katalog zu entfernen:

    AppStreamImageAssistant remove-application –-name application_name

Schritt 4: Erstellen von Standardanwendungseinstellungen und Umgebungsvariablen

In diesem Schritt erstellen Sie Standardanwendungseinstellungen und Umgebungsvariablen für Ihre AppStream-2.0-Benutzer. Dadurch können die Benutzer während ihrer Streaming-Sitzungen in AppStream 2.0 Anwendungen schnell starten, ohne dass sie selbst Einstellungen erstellen oder konfigurieren müssen.

So erstellen Sie Standardanwendungs- und Umgebungsvariablen für Ihre Benutzer
  1. Starten Sie die Anwendung, für die Sie die Standardeinstellungen erstellen möchten. Führen Sie beispielsweise in einem Terminalfenster den folgenden Befehl aus, um den Chromium-Browser zu starten:

    [ImageBuilderAdmin]$ chromium-browser

  2. Konfigurieren Sie die Anwendungseinstellungen. Legen Sie beispielsweise https://aws.amazon.com als Startseite für den Chromium-Browser fest.

  3. Führen Sie die folgenden Befehle aus, um die Konfiguration für Chromium nach /etc/skel zu kopieren:

    [ImageBuilderAdmin]$ sudo mkdir /etc/skel/.config

    [ImageBuilderAdmin]$ sudo cp -R ~/.config/chromium /etc/skel/.config

  4. Legen Sie die Umgebungsvariablen fest und fügen Sie sie der Skriptdatei hinzu. Führen Sie z. B. die folgenden Befehle aus:

    [ImageBuilderAdmin]$ echo "export FOO=BAR" | sudo tee -a /etc/profile.d/myenvvars.sh

    [ImageBuilderAdmin]$ sudo chmod +x /etc/profile.d/myenvvars.sh

Schritt 5: Testen der Anwendungen und Einstellungen

Überprüfen Sie in diesem Schritt, ob die von Ihnen hinzugefügten Anwendungen korrekt ausgeführt werden und ob die Standardanwendungseinstellungen und Umgebungsvariablen wie erwartet funktionieren.

So testen Sie Ihre Anwendungen und Standardeinstellungen im Image Builder
  1. Erstellen Sie einen Testbenutzer ohne Root-Berechtigungen. Führen Sie beispielsweise in einem Terminalfenster die folgenden Befehle aus, um test-user im Image Builder zu erstellen:

    [ImageBuilderAdmin]$ sudo useradd -m test-user

    [ImageBuilderAdmin]$ echo -e 'Pa55w0rdas2!!!\nPa55w0rdas2!!!\n' | sudo passwd test-user

  2. Wechseln Sie zum Testbenutzer:

    [ImageBuilderAdmin]$ su - test-user

  3. Starten Sie die Anwendung (z. B. Chromium) als Testbenutzer:

    [test-user]$ /usr/bin/chromium-browser

  4. Vergewissern Sie sich, dass die Standardeinstellungen für den Testbenutzer verfügbar sind (z. B. sollte die Chromium-Startseite https://aws.amazon.com/ lauten).

  5. Stellen Sie sicher, dass die Umgebungsvariablen für den Testbenutzer verfügbar sind. Führen Sie z. B. den folgenden Befehl aus:

    [test-user]$ echo $FOO

    Dieser Befehl sollte die Ausgabe BAR im Terminal anzeigen.

  6. Führen Sie die folgenden Befehle aus, um den Testbenutzer zu löschen, bevor Sie mit diesem Image Builder ein Abbild erstellen:

    # logout test user

    [test-user]$ logout

    # kill test user's running processes

    [ImageBuilderAdmin]$ sudo killall -u test-user

    # delete user

    [ImageBuilderAdmin]$ sudo userdel -r test-user

Schritt 6: Beenden Sie das Erstellen Ihres Abbilds

In diesem Schritt wählen Sie einen Namen für das Abbild aus und beenden das Erstellen des Abbilds.

So erstellen Sie das Abbild
  1. Erstellen Sie in einem Terminal-Fenster ein Abbild in Ihrem Image Builder, indem Sie AppStreamImageAssistant create-imageausführen. Dieses Abbild enthält Ihre installierten und registrierten Anwendungen sowie alle Sitzungsskripts und Standardanwendungseinstellungen, die Sie konfiguriert haben.

    Führen Sie AppStreamImageAssistant create-image --help aus, um die Liste der verfügbaren Optionen zu sehen. Weitere Informationen finden Sie unter der Operation create-image unter Erstellen Sie Ihr Amazon AppStream 2.0-Image programmatisch mithilfe der Image Assistant-Operationen CLI.

  2. Die Remote-Sitzung wird innerhalb weniger Augenblicke getrennt. Wenn die Nachricht Lost Connectivity (Konnektivität unterbrochen) angezeigt wird, schließen Sie die Browser-Registerkarte. Während das Image erstellt wird, wird der Status des Image Builder als Snapshotting angezeigt. Sie können keine Verbindung mit dem Image Builder herstellen, bis dieser Vorgang beendet ist.

  3. Kehren Sie zur Konsole zurück und rufen Sie Images und Image Registry auf. Vergewissern Sie sich, dass Ihr neues Abbild in der Liste angezeigt wird.

    Während Ihr Abbild erstellt wird, lautet der Abbildstatus im Abbildverzeichnis der Konsole Pending (Schwebend). Sie können keine Verbindung zu Abbildern herstellen, die sich im Status Ausstehend befinden.

  4. Wählen Sie das Symbol Aktualisieren aus, um den Status zu aktualisieren. Nachdem Ihr Abbild erstellt wurde, ändert sich der Image-Status in Available (Verfügbar) und der Image Builder wird automatisch angehalten.

    Zum Erstellen weiterer Abbilder starten Sie den Image Builder und stellen Sie eine Verbindung von der Konsole her oder erstellen Sie einen neuen Image Builder.

Schritt 7 (optional): Kennzeichnen und Kopieren eines Image

Sie können einem Abbild während dessen Erstellung oder auch später Tags hinzufügen. Sie können das Abbild auch innerhalb einer Region oder in eine neue Region desselben Amazon-Web-Services-Kontos kopieren. Durch Kopieren des Quellabbilds wird ein identisches, aber anderes Zielabbild erstellt. AWS kopiert jedoch keine benutzerdefinierten Tags. Außerdem können Sie nur benutzerdefinierte Abbilder kopieren, die Sie erstellt haben, nicht die Basisabbilder, die von AWS bereitgestellt werden.

Anmerkung

Sie können bis zu zwei Images gleichzeitig in einen Ziel kopieren. Wenn das Ziel, in das Sie ein Image kopieren, keine weiteren Images aufnehmen kann, erhalten Sie eine Fehlermeldung. Um das Image in diesem Fall zu kopieren, müssen Sie zunächst Images vom Ziel entfernen. Sobald das Ziel unterhalb der Grenze des Abbildkontingents (auch als Limit bezeichnet) liegt, starten Sie das Kopieren des Abbildes aus der Quellregion. Weitere Informationen finden Sie unter Amazon AppStream 2.0-Servicekontingente.

Hinzufügen von Tags zu einem vorhandenen Abbild
  1. Wählen Sie im linken Navigationsbereich Images und Image Registry aus.

  2. Wählen Sie in der Image-Liste das Image aus, dem Sie Tags hinzufügen möchten.

  3. Wählen Sie zunächst Tags, dann Tags hinzufügen/bearbeiten und schließlich Tag hinzufügen aus. Geben Sie den Schlüssel und den Wert für das Tag an und wählen Sie anschließend Speichern aus.

Weitere Informationen finden Sie unter Kennzeichnen Ihrer Amazon AppStream 2.0-Ressourcen.

Ein Image kopieren

Durch das Kopieren eines Image über geografisch verteilte Regionen können Sie Anwendungen aus mehreren Regionen basierend auf demselben Image streamen. Durch das näher bei Ihren Benutzern ausgeführte Streamen Ihrer Anwendungen können Sie die Wahrnehmung von Streaming-Anwendungen Ihrer Benutzer in AppStream 2.0 verbessern.

  1. Wählen Sie im linken Navigationsbereich Images und Image Registry aus.

  2. Wählen Sie in der Image-Liste das zu kopierende Image aus.

  3. Wählen Sie Actions (Aktionen), Copy (Kopieren).

  4. Geben Sie im Dialogfeld Copy Image (Image kopieren) die folgenden Informationen an und wählen Sie anschließend Copy Image: (Image kopieren:)

    • Wählen Sie für Destination region (Zielregion) die Region aus, in die das neue Image kopiert werden soll.

    • Geben Sie für Nameeinen Namen ein, den das Image in dem Ziel haben soll, in das es kopiert wird.

    • Geben Sie für Description (Beschreibung) (optional) eine Beschreibung für das Image in dem Ziel ein, in das es kopiert wird.

  5. Um den Fortschritt der Kopieroperation zu überprüfen, kehren Sie auf die Konsole zurück und wählen Images, Image-Registry. Verwenden Sie die Navigationsleiste, um zur Zielregion zu wechseln (falls zutreffend), und vergewissern Sie sich, dass Ihr neues Image in der Image-Liste enthalten ist.

    Das neue Image wird in der Image-Registry Ihrer Konsole zunächst mit dem Status Copying (Kopieren) angegeben. Nachdem das Abbild erfolgreich erstellt wurde, ändert sich der Status in Available. Nun können Sie das Abbild nutzen, um einen Stack zu starten und Ihre Anwendungen zu streamen.

Schritt 8: Bereinigen

Abschließend stoppen Sie die ausgeführten Image Builder und setzen die Ressourcen frei, damit für Ihr Konto keine ungewollten Kosten entstehen. Es wird empfohlen, die Ausführung aller ungenutzter Image Builder zu stoppen. Weitere Informationen finden Sie unter AppStream 2.0 – Preise.

So stoppen Sie einen ausgeführten Image Builder
  1. Wählen Sie im Navigationsbereich Images und Image Builders und dann die ausgeführte Image Builder-Instance aus.

  2. Wählen Sie Actions und Stop aus.