Tutorial: creazione di un'immagine AppStream 2.0 personalizzata basata su Linux - Amazon AppStream 2.0

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: creazione di un'immagine AppStream 2.0 personalizzata basata su Linux

Questo tutorial descrive come creare un'immagine Amazon AppStream 2.0 personalizzata basata su Linux che contenga applicazioni di cui puoi eseguire lo streaming agli utenti.

Fase 1: installazione delle applicazioni sull'Image Builder

In questa fase, connetti un Image Builder di Linux e installi le applicazioni sull'Image Builder.

Installare le applicazioni sull'Image Builder
  1. Accedi all'Image Builder in uno dei seguenti modi:

  2. Installa le applicazioni necessarie. Ad esempio, per installare un browser Chromium da un repository yum pubblico, apri prima l'applicazione Terminale, quindi esegui il seguente comando:

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

    Nota

    Scaricare e installare le applicazioni solo dai siti fidati.

Fase 2: Generazione del file manifesto per l'ottimizzazione delle applicazioni

In questa fase, generati un file manifesto per ogni applicazione installata nella fase 1.

Generazione di un file manifesto per ottimizzare le prestazioni di avvio di un'applicazione
  1. Assicurati che l'applicazione (ad esempio, Chromium) che stai cercando di ottimizzare sia avviata e in esecuzione.

  2. In una finestra di Terminale, esegui il comando seguente per elencare i processi relativi all'applicazione:

    [ImageBuilderAdmin]$ ps -ef | grep chromium

  3. Trova il PID principale dall'output del comando precedente. Di seguito è riportato un esempio di output e il PID principale è 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. Mantieni l'applicazione in esecuzione e assicurati di utilizzare i componenti iniziali richiesti dagli utenti. In questo modo, i componenti vengono acquisiti dal processo di ottimizzazione.

  5. Crea un file script (ad esempio, ~/getfilestool.sh) con i seguenti contenuti:

    #!/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. Verifica che il file possa essere eseguito eseguendo il seguente comando:

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

  7. Esegui il comando seguente per acquisire tutti i file in esecuzione dal processo principale individuato nella fase 3 precedente e salvali in un file manifesto temporaneo:

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

  8. Verifica il contenuto del manifesto di ottimizzazione, che è un file di testo delimitato da righe per ogni applicazione.

Fase 3: creazione di un catalogo di applicazioni AppStream 2.0

In questa fase, usi lo strumento CLI AppStreamImageAssistant sull'Image Builder per creare un catalogo di applicazioni AppStream 2.0 specificando le applicazioni per l'immagine. Per ogni applicazione per cui prevedi di effettuare lo streaming, puoi specificare il nome, il nome visualizzato, il file eseguibile da avviare e l'icona da visualizzare.

Per creare un catalogo di applicazioni AppStream 2.0
  1. Dal desktop dell'Image Builder, apri Terminale dal pannello laterale o aprendo la griglia dell'app.

  2. Esegui AppStreamImageAssistant --help per visualizzare l'elenco dei comandi disponibili. Utilizzerai questi comandi per aggiungere applicazioni e creare un'immagine.

  3. Esegui il comando seguente per aggiungere un'applicazione installata (ad esempio Chromium) all'elenco delle applicazioni per gli utenti di 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

    In alternativa, esegui il seguente comando:

    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. Per aggiungere altre applicazioni, ripeti la fase 3 per ogni applicazione aggiuntiva.

  5. Per visualizzare l'elenco delle applicazioni che sono state aggiunte al catalogo, insieme ai metadati come i percorsi delle icone e i parametri di avvio, esegui il comando seguente:

    AppStreamImageAssistant list-applications

  6. Per rimuovere le applicazioni dal catalogo, esegui il comando seguente:

    AppStreamImageAssistant remove-application –-name application_name

Fase 4: Creazione delle impostazioni predefinite dell'applicazione e delle variabili di ambiente

In questa fase, crei le impostazioni predefinite di applicazioni e di variabili di ambiente per gli utenti di AppStream 2.0. Questa operazione consente agli utenti di iniziare a utilizzare le applicazioni rapidamente durante le sessioni di streaming di AppStream 2.0, senza la necessità di creare o configurare queste impostazioni.

Per creare applicazioni predefinite e variabili di ambiente per gli utenti
  1. Avvia l'applicazione per cui creare le impostazioni predefinite. Ad esempio, in una finestra del Terminale, esegui il seguente comando per avviare il browser Chromium:

    [ImageBuilderAdmin]$ chromium-browser

  2. Configurazione delle impostazioni delle applicazioni. Ad esempio, imposta la home page del browser Chromium come. https://aws.amazon.com.

  3. Esegui i seguenti comandi per copiare la configurazione di Chromium in /etc/skel:

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

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

  4. Imposta le variabili di ambiente e aggiungile al file di script. Ad esempio, esegui i comandi seguenti:

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

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

Fase 5: Test delle applicazioni e delle impostazioni

In questa fase, verifica che le applicazioni che hai aggiunto funzionino correttamente e che le impostazioni predefinite dell'applicazione e le variabili di ambiente funzionino come previsto.

Per testare le applicazioni e le impostazioni predefinite su un Image Builder
  1. Crea un utente di test senza autorizzazioni root. Ad esempio, in una finestra di Terminale, esegui i seguenti comandi per creare test-user sull'Image Builder:

    [ImageBuilderAdmin]$ sudo useradd -m test-user

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

  2. Passa all'utente di test:

    [ImageBuilderAdmin]$ su - test-user

  3. Avvia l'applicazione (ad esempio, Chromium) come utente di test:

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

  4. Verifica che le impostazioni predefinite siano disponibili per l'utente di test (ad esempio, la home page di Chromium è https://aws.amazon.com/).

  5. Verifica che le variabili di ambiente siano disponibili per l'utente di test. Ad esempio, esegui il comando seguente:

    [test-user]$ echo $FOO

    Questo comando dovrebbe visualizzare nel terminale l'output BAR.

  6. Esegui i seguenti comandi per eliminare l'utente di test prima di creare un'immagine da questo 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

Fase 6: terminare la creazione dell'immagine

In questa fase, scegliere un nome dell'immagine e terminare la creazione dell'immagine.

Creare l'immagine
  1. In una finestra del Terminale, crea un'immagine dall'Image Builder eseguendo AppStreamImageAssistant create-image. Questa immagine contiene le applicazioni installate e registrate, oltre agli script di sessione e alle impostazioni predefinite delle applicazioni che hai configurato.

    Esegui AppStreamImageAssistant create-image --help per visualizzare l'elenco delle opzioni disponibili. Per ulteriori informazioni, consulta l'operazione create-image in Creazione dell'immagine AppStream 2.0 in modo programmatico utilizzando le operazioni di interfaccia della linea di comando (CLI) di Image Assistant.

  2. La sessione remota si disconnette dopo pochi istanti. Quando viene visualizzato il messaggio Lost Connectivity (Connessione persa), chiudere la scheda del browser. Durante la creazione dell'immagine, lo stato dell'Image Builder viene visualizzato come Snapshotting (Creazione di snapshot). Non è possibile connettersi all'Image Builder fino al termine del processo.

  3. Tornare alla console e passare a Images (Immagini), Image Registry (Registro immagine). Verificare che la nuova immagine venga visualizzata nell'elenco.

    Durante la creazione dell'immagine, lo stato dell'immagine nel registro immagini della console viene visualizzato come In sospeso. Non puoi connetterti a immagini con stato In sospeso.

  4. Scegli l'icona Aggiorna per aggiornare lo stato. Durante la creazione dell'immagine, lo stato dell'immagine viene modificata in Available (Disponibile) e l'Image Builder viene automaticamente arrestato.

    Per continuare la creazione di immagini, avviare l'Image Builder e connettersi dalla console o creare un nuovo Image Builder.

Fase 7 (facoltativa): applicare tag e copiare un'immagine

È possibile aggiungere uno o più tag a un'immagine durante la creazione dell'immagine o dopo aver creato un'immagine. È anche possibile copiare l'immagine all'interno della stessa regione o in una nuova regione all'interno dello stesso account Amazon Web Services. La copia di un'immagine di origine restituisce un'immagine di destinazione identica ma distinta. Tuttavia, AWS non copia alcun tag definito dall'utente. Inoltre, è possibile copiare solo immagini personalizzate che sono state create, non le immagini di base fornite da AWS.

Nota

È possibile copiare fino a due immagini in una destinazione nello stesso momento. Se la destinazione in cui si desidera copiare un'immagine è al limite dell'immagine, viene restituito un errore. Per copiare l'immagine in questo caso, è necessario prima rimuovere le immagini dalla destinazione. Dopo che la destinazione è inferiore alla quota immagine (definita anche limite), avviare la copia dell'immagine dalla regione di origine. Per ulteriori informazioni, consulta Service Quotas di Amazon AppStream 2.0.

Per aggiungere tag a un'immagine esistente
  1. Nel riquadro di navigazione, scegliere Images (Immagini), Image Registry (Registro immagini).

  2. Nell'elenco di immagini, selezionare l'immagine a cui si desidera aggiungere tag.

  3. Scegli Tag, Aggiungi/Modifica tag, quindi scegli Aggiungi tag. Specifica la chiave e il valore del tag, quindi scegli Salva.

Per ulteriori informazioni, consulta Assegnazione di tag alle risorse di Amazon AppStream 2.0.

Copiare un'immagine

La copia di un'immagine su più regioni geograficamente diverse consente di effettuare lo streaming di applicazioni da più regioni in base alla stessa immagine. Effettuando lo streaming di applicazioni nelle vicinanze degli utenti, è possibile migliorare l'esperienza degli utenti con lo streaming delle applicazioni con AppStream 2.0.

  1. Nel riquadro di navigazione, scegliere Images (Immagini), Image Registry (Registro immagini).

  2. Nell'elenco di immagini, selezionare l'immagine da copiare.

  3. Selezionare Actions (Operazioni), Copy (Copia).

  4. Nella finestra di dialogo Copy Image (Copia immagine), specificare le informazioni seguenti, quindi scegli Copy Image (Copia immagine):

    • Per Destination Region (Regione di destinazione) scegliere la regione in cui copiare la nuova immagine.

    • Per Name (Nome), specificare un nome che avrà l'immagine quando verrà copiata nella destinazione.

    • Per Description (Descrizione) (facoltativo), specificare una descrizione che avrà l'immagine quando verrà copiata nella destinazione.

  5. Per controllare il progresso dell'operazione di copia, tornare alla console e passare a Images (Immagini), Image Registry (Registro immagine). Utilizzare la barra di navigazione per passare alla regione di destinazione (se applicabile) e confermare che la nuova immagine viene visualizzata nell'elenco di immagini.

    La nuova immagine viene visualizzata prima con stato Copying (Copia) nel registro immagine della console. Dopo che l'immagine è stata creata con successo, lo stato dell'immagine viene modificato in Available (Disponibile), che significa che è possibile utilizzare l'immagine per avviare uno stack ed effettuare lo streaming delle applicazioni.

Fase 8: elimina

Infine, puoi arrestare gli Image Builder in esecuzione per liberare le risorse ed evitare addebiti indesiderati per l'account. Consigliamo di arrestare qualsiasi Image Builder inutilizzato in esecuzione. Per ulteriori informazioni, consulta Prezzi di AppStream 2.0.

Arrestare un Image Builder in esecuzione
  1. Nel riquadro di navigazione, scegliere Images (Immagini), Image Builders (Image Builder) e selezionare l'istanza dell'Image Builder in esecuzione.

  2. Scegliere Actions (Operazioni), Stop (Arresta).