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.
Ce didacticiel explique comment créer une image AppStream Amazon 2.0 personnalisée basée sur Linux contenant des applications que vous pouvez diffuser à vos utilisateurs.
Table des matières
É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
-
Connectez-vous à l’instance Image Builder en effectuant l’une des actions suivantes :
Utiliser la console AppStream 2.0 (pour les connexions Web uniquement)
Création d'une URL de streaming (pour les connexions Web ou client AppStream 2.0)
Note
Vous serez connecté en tant qu' ImageBuilderAdmin utilisateur au bureau Amazon Linux GNOME et aurez les privilèges d'administrateur root.
-
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
-
Assurez-vous que l’application (Chromium, par exemple) à optimiser est lancée et en cours d’exécution.
-
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
-
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
-
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.
-
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'
-
Exécutez la commande suivante pour vérifier que le fichier peut être exécuté :
[ImageBuilderAdmin]$ chmod u+x ~/getfilestool.sh
-
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
-
Vérifiez le contenu du manifeste d’optimisation (fichier texte délimité par des lignes pour chaque application).
Étape 3 : Création d'un catalogue d'applications AppStream 2.0
Au cours de cette étape, vous utilisez l'outil AppStreamImageAssistant
CLI du générateur d'images pour créer un catalogue d'applications AppStream 2.0 en spécifiant des applications pour votre 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
-
Depuis le bureau de l’instance Image Builder, ouvrez l’application Terminal à partir du volet latéral ou affichez la grille des applications.
-
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.
-
Exécutez la commande suivante pour ajouter une application installée (par exemple, Chromium) à la liste des applications pour les utilisateurs de la AppStream version 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"
-
Pour ajouter d’autres applications, répétez l’étape 3 pour chacune d’elles.
-
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
-
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 créez les paramètres d'application par défaut et les variables d'environnement pour vos utilisateurs AppStream 2.0. Cela permet à vos utilisateurs de démarrer rapidement avec les applications pendant leurs sessions de streaming AppStream 2.0, sans avoir à créer ou à configurer eux-mêmes ces paramètres.
Pour créer les paramètres d’application et les variables d’environnement par défaut des utilisateurs
-
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
-
Configurez les paramètres de l’application. Par exemple, définissez
https://aws.amazon.com
comme page d’accueil du navigateur Chromium. -
Assurez-vous que l'application Chromium est fermée, puis 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
-
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
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
Basculez vers l’utilisateur test :
[ImageBuilderAdmin]$ su - test-user
Lancez l’application (par exemple, Chromium) en tant qu’utilisateur test :
[test-user]$ /usr/bin/chromium-browser
-
Vérifiez que les paramètres par défaut sont disponibles pour l'utilisateur de test (par exemple, la page d'accueil de Chromium est https://aws.amazon.com/).
-
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. -
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
-
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éez votre image Amazon AppStream 2.0 par programmation à l'aide des opérations de la CLI de l'Assistant Image.
-
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'Image Builder tant que ce processus n'est pas terminé.
-
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.
-
Choisissez l’icône Actualiser pour mettre à jour l’état. Une fois que votre image est créée, l'état de l'image devient Available (Disponible) et l'Image Builder est automatiquement arrêté.
Pour continuer à créer des images, démarrez l'Image Builder et connectez-vous y à partir de la console, ou créez un nouvel 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 permet d'obtenir une image de destination identique mais distincte. AWS ne copie toutefois 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, vous recevez une erreur. 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 Amazon AppStream 2.0.
Pour ajouter des balises à une image existante
-
Dans le volet de navigation, choisissez Images, puis Registre d’images.
-
Dans la liste des images, sélectionnez celle à laquelle vous souhaitez ajouter des balises.
-
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 Marquer vos 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 des applications à partir de plusieurs régions, à partir de la même image. En diffusant vos applications au plus près de vos utilisateurs, vous pouvez améliorer l'expérience de vos utilisateurs en matière de streaming d'applications avec la AppStream version 2.0.
-
Dans le volet de navigation, choisissez Images, puis Registre d’images.
-
Dans la liste des images, sélectionnez celle à copier.
-
Choisissez Actions, puis Copier.
-
Dans la boîte de dialogue Copier une image, spécifiez les informations suivantes, puis choisissez Copier l’image :
-
Pour Destination region (Région de destination), choisissez la région vers laquelle copier la nouvelle image.
-
Pour Name (Nom), spécifiez un nom que l'image aura lorsqu'elle sera copiée dans la destination.
-
Pour Description (facultatif), spécifiez une description que l'image aura lorsqu'elle sera copiée dans la destination.
-
-
Pour vérifier la progression de l'opération de copie, revenez dans la console et naviguez jusqu'à Images, Image Registry (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 un statut Copying (En cours de copie) dans le registre d'images de votre console. Lorsque l'image est créée avec succès, l'état de l'image devient Available, 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 la section Tarification AppStream 2.0
Pour arrêter une instance Image Builder en cours d’exécution
-
Dans le volet de navigation, choisissez Images, Instances Image Builder, puis sélectionnez l’instance Image Builder en cours d’exécution.
-
Choisissez Actions, puis Arrêter.