Didacticiel : Création d'une image AppStream 2.0 Linux personnalisée - Amazon AppStream 2.0

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Didacticiel : Création d'une image AppStream 2.0 Linux personnalisée

Ce didacticiel explique comment créer une image Amazon AppStream 2.0 Linux personnalisée contenant les applications à diffuser aux utilisateurs.

Étape 1 : Installer les applications Linux sur l'instance Image Builder

Au cours de cette étape, vous allez vous connecter à une instance Image Builder Linux et y installer les applications.

Pour installer des applications sur l'instance Image Builder
  1. Connectez-vous à l'instance Image Builder en effectuant l'une des actions suivantes :

    • Utilisez la console AppStream 2.0 (pour les connexions Web uniquement)

    • Créez une URL de streaming (pour les connexions Web ou du client AppStream 2.0)

      Note

      Vous serez connecté en tant qu'utilisateur ImageBuilderAdmin au bureau Amazon Linux GNOME et vous disposerez des privilèges d'administrateur root.

  2. Installez les applications nécessaires. Par exemple, pour installer un navigateur Chromium à partir d'un référentiel yum public, ouvrez d'abord l'application Terminal, puis exécutez la commande suivante :

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

    Note

    Téléchargez et installez uniquement les applications de sites dans lesquels vous avez confiance.

Étape 2 : Générer un fichier manifeste d'optimisation des applications

Au cours de cette étape, vous allez générer le fichier manifeste de chaque application installée à l'étape 1.

Pour générer un fichier manifeste destiné à optimiser les performances de lancement d'une application
  1. Assurez-vous que l'application (Chromium, par exemple) à optimiser est lancée et en cours d'exécution.

  2. Dans une fenêtre de l'application Terminal, exécutez la commande suivante pour afficher les processus liés à l'application :

    [ImageBuilderAdmin]$ ps -ef | grep chromium

  3. Recherchez le PID du parent racine dans la sortie de la commande ci-dessus. Dans l'exemple de sortie suivant, le PID du parent racine est 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. Maintenez l'application en cours d'exécution et veillez à utiliser les composants initiaux requis par vos utilisateurs. Vous garantissez ainsi que ces composants sont capturés par le processus d'optimisation.

  5. Créez un fichier de script (~/getfilestool.sh, par exemple) avec le contenu suivant :

    #!/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. Exécutez la commande suivante pour vérifier que le fichier peut être exécuté :

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

  7. Exécutez la commande suivante pour capturer tous les fichiers en cours d'exécution à partir du processus parent racine trouvé à l'étape 3 ci-dessus. Ensuite, enregistrez-les dans un fichier manifeste temporaire :

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

  8. Vérifiez le contenu du manifeste d'optimisation (fichier texte délimité par des lignes pour chaque application).

Étape 3 : Créer un catalogue d'applications AppStream 2.0

Au cours de cette étape, vous allez utiliser l'outil AppStreamImageAssistant de l'interface de ligne de commande sur l'instance Image Builder pour créer un catalogue d'applications AppStream 2.0. À cette fin, vous allez spécifier les applications de l'image. Pour chaque application que vous prévoyez de diffuser, spécifiez le nom, le nom d'affichage, le fichier exécutable à lancer et l'icône à afficher.

Pour créer un catalogue d'applications AppStream 2.0
  1. Depuis le bureau de l'instance Image Builder, ouvrez l'application Terminal à partir du volet latéral ou affichez la grille des applications.

  2. Exécutez AppStreamImageAssistant --help pour afficher la liste des commandes disponibles. Vous allez utiliser ces commandes pour ajouter des applications et créer une image.

  3. Exécutez la commande suivante pour ajouter une application installée (Chromium, par exemple) à la liste des applications des utilisateurs AppStream 2.0 :

    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

    Vous pouvez également exécuter la commande suivante :

    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. Pour ajouter d'autres applications, répétez l'étape 3 pour chacune d'elles.

  5. Pour afficher la liste des applications ajoutées au catalogue, ainsi que les métadonnées telles que les chemins d'icônes et les paramètres de lancement, exécutez la commande suivante :

    AppStreamImageAssistant list-applications

  6. Pour supprimer une application du catalogue, exécutez la commande suivante :

    AppStreamImageAssistant remove-application –-name application_name

Étape 4 : Créer les paramètres d'application et les variables d'environnement par défaut

Au cours de cette étape, vous allez créer les paramètres d'application et les variables d'environnement par défaut des utilisateurs AppStream 2.0. Ceux-ci peuvent ainsi commencer à utiliser les applications lors de leurs sessions de streaming AppStream 2.0 sans avoir à créer ou configurer eux-mêmes les paramètres.

Pour créer les paramètres d'application et les variables d'environnement par défaut des utilisateurs
  1. Lancez l'application pour laquelle vous souhaitez créer les paramètres par défaut. Par exemple, dans une fenêtre Terminal, exécutez la commande suivante pour lancer le navigateur Chromium :

    [ImageBuilderAdmin]$ chromium-browser

  2. Configurez les paramètres de l'application. Par exemple, définissez https://aws.amazon.com comme page d'accueil du navigateur Chromium.

  3. Exécutez les commandes suivantes pour copier la configuration de Chromium dans /etc/skel :

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

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

  4. Définissez les variables d'environnement et ajoutez-les au fichier de script. Par exemple, exécutez les commandes suivantes :

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

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

Étape 5 : Tester les applications et les paramètres

Au cours de cette étape, vérifiez que les applications ajoutées s'exécutent correctement et que les paramètres d'application et les variables d'environnement par défaut fonctionnent comme prévu.

Pour tester vos applications et vos paramètres par défaut sur une instance Image Builder
  1. Créez un utilisateur test qui ne dispose d'aucune autorisation root. Par exemple, dans une fenêtre Terminal, exécutez les commandes suivantes pour créer test-user sur l'instance Image Builder :

    [ImageBuilderAdmin]$ sudo useradd -m test-user

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

  2. Basculez vers l'utilisateur test :

    [ImageBuilderAdmin]$ su - test-user

  3. Lancez l'application (par exemple, Chromium) en tant qu'utilisateur test :

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

  4. Vérifiez que les paramètres par défaut sont disponibles pour l'utilisateur test (par exemple, que la page d'accueil de Chromium est https://aws.amazon.com/).

  5. Vérifiez aussi qu'il a accès aux variables d'environnement. Par exemple, exécutez la commande suivante :

    [test-user]$ echo $FOO

    La commande doit afficher la sortie BAR dans l'application Terminal.

  6. Exécutez les commandes suivantes pour supprimer l'utilisateur test avant de créer une image à partir de l'instance Image Builder :

    # 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

Étape 6 : Terminer la création de l'image

Au cours de cette étape, vous allez attribuer un nom à l'image et achever sa création.

Pour créer l'image
  1. Dans une fenêtre de l'application Terminal, exécutez AppStreamImageAssistant create-image pour créer une image depuis l'instance Image Builder. Cette image contient les applications que vous avez installées et enregistrées, ainsi que les scripts de session et les paramètres d'application par défaut que vous avez configurés.

    Pour afficher la liste des options disponibles, exécutez AppStreamImageAssistant create-image --help. Pour plus d'informations, consultez l'opération create-image dans Création de votre image AppStream 2.0 par programmation à l'aide des opérations d'interface de ligne de commande (CLI) Image Assistant.

  2. La session à distance se déconnecte au bout de quelques instants. Lorsque le message Connectivité perdue s'affiche, fermez l'onglet du navigateur. Pendant la création de l'image, l'instance Image Builder a pour état Création de l'instantané en cours. Vous ne pouvez pas vous connecter à l'instance Image Builder tant que le processus n'est pas terminé.

  3. Revenez à la console et naviguez jusqu'à Images, Registre d'images. Vérifiez que la nouvelle image figure dans la liste.

    Pendant la création de l'image, son état dans le registre d'images de la console est En attente. Il est impossible de se connecter aux images dont l'état est En attente.

  4. Choisissez l'icône Actualiser pour mettre à jour l'état. Après la création de l'image, son état devient Disponible et l'instance Image Builder s'arrête automatiquement.

    Pour continuer la création d'images, démarrez l'instance Image Builder et connectez-vous y à partir de la console, ou créez une autre instance Image Builder.

Étape 7 (facultative) : Baliser et copier une image

Vous pouvez ajouter une ou plusieurs balise(s) à une image pendant ou après sa création. Vous pouvez également copier l'image dans la même région, ou dans une nouvelle région du même compte Amazon Web Services. La copie d'une image source se traduit par une image de destination identique, mais distincte. Cependant, AWS ne copie aucune balise définie par l'utilisateur. De plus, vous pouvez uniquement copier les images personnalisées que vous créez, pas les images de base fournies par AWS.

Note

Vous ne pouvez pas copier simultanément plus de deux images vers une destination. Si la destination vers laquelle vous copiez une image atteint la limite d'images, un message d'erreur s'affiche. Dans ce cas, avant de copier l'image, vous devez supprimer des images de la destination. Une fois que le nombre d'images de la région de destination est inférieur au quota (aussi appelé limite) défini, lancez la copie d'image à partir de la région source. Pour plus d'informations, consultez Quotas de service d'Amazon AppStream 2.0.

Pour ajouter des balises à une image existante
  1. Dans le volet de navigation, choisissez Images, puis Registre d'images.

  2. Dans la liste des images, sélectionnez celle à laquelle vous souhaitez ajouter des balises.

  3. Choisissez successivement Balises, Ajouter/modifier des balises et Ajouter une balise. Spécifiez la clé et la valeur de la balise, puis choisissez Enregistrer.

Pour plus d'informations, consultez Balisage des ressources Amazon AppStream 2.0.

Pour copier une image

La copie d'une image entre différentes régions géographiques vous permet de diffuser les applications depuis plusieurs régions basées sur la même image. En diffusant les applications au plus près des utilisateurs, vous améliorez leur expérience avec AppStream 2.0.

  1. Dans le volet de navigation, choisissez Images, puis Registre d'images.

  2. Dans la liste des images, sélectionnez celle à copier.

  3. Choisissez Actions, puis Copier.

  4. Dans la boîte de dialogue Copier une image, spécifiez les informations suivantes, puis choisissez Copier l'image :

    • Dans la zone Région de destination, choisissez la région vers laquelle copier la nouvelle image.

    • Dans la zone Nom, spécifiez le nom de l'image dans la région de destination.

    • Dans la zone Description (facultatif), spécifiez la description de l'image dans la région de destination.

  5. Pour vérifier la progression de l'opération de copie, revenez dans la console et naviguez jusqu'à Images, Registre d'images. Utilisez la barre de navigation pour basculer vers la région de destination (le cas échéant) et vérifiez que la nouvelle image s'affiche dans la liste des images.

    La nouvelle image s'affiche d'abord avec l'état Copie en cours dans le registre d'images de la console. Lorsque l'image est créée avec succès, son état devient Disponible, ce qui signifie que vous pouvez désormais utiliser l'image pour lancer une pile et diffuser vos applications.

Étape 8 : Nettoyer

Enfin, arrêtez les instances Image Builder en cours d'exécution pour libérer des ressources et éviter l'imputation de frais inutiles à votre compte. Il est recommandé d'arrêter toutes les instances Image Builder en cours d'exécution et non utilisées. Pour plus d'informations, consultez Tarification d'Amazon AppStream 2.0.

Pour arrêter une instance Image Builder en cours d'exécution
  1. Dans le volet de navigation, choisissez Images, Instances Image Builder, puis sélectionnez l'instance Image Builder en cours d'exécution.

  2. Choisissez Actions, puis Arrêter.