Tutorial: Creación de una imagen de AppStream 2.0 personalizada basada en Linux - Amazon AppStream 2.0

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Creación de una imagen de AppStream 2.0 personalizada basada en Linux

En este tutorial se describe cómo crear una imagen personalizada de Amazon AppStream 2.0 basada en Linux que contenga aplicaciones que puede transmitir a sus usuarios.

Paso 1: Instalar aplicaciones Linux en el generador de imágenes

En este paso, se conecta un generador de imágenes Linux y se instalan sus aplicaciones en el generador de imágenes.

Para instalar aplicaciones en el generador de imágenes
  1. Conéctese al generador de imágenes mediante uno de los siguientes métodos:

  2. Instale las aplicaciones que necesite. Por ejemplo, para instalar un navegador Chromium desde un repositorio de yum público, abra primero la aplicación Terminal y, a continuación, ejecute el siguiente comando:

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

    nota

    Descargue e instale las aplicaciones solo desde sitios de confianza.

Paso 2: Generar el archivo del manifiesto de optimización de aplicaciones

En este paso, generará un archivo de manifiesto para cada aplicación que haya instalado en el paso 1.

Para generar un archivo de manifiesto para optimizar el rendimiento de lanzamiento de una aplicación
  1. Asegúrese de que la aplicación que desea optimizar (p. ej., Chromium) esté iniciada y en ejecución.

  2. En una ventana del terminal, ejecute el siguiente comando para ver los procesos relacionados con la aplicación:

    [ImageBuilderAdmin]$ ps -ef | grep chromium

  3. Busque el PID principal raíz en el resultado del comando anterior. A continuación se muestra un ejemplo de salida, y el PID principal raíz es 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. Mantenga la aplicación en ejecución y asegúrese de utilizar los componentes iniciales que necesitan los usuarios. De esta forma, garantiza que el proceso de optimización capture estos componentes.

  5. Cree un archivo de script (p. ej., ~/getfilestool.sh), con el siguiente contenido:

    #!/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. Verifique que el archivo se pueda ejecutar mediante el siguiente comando:

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

  7. Ejecute el siguiente comando para capturar todos los archivos en ejecución del proceso principal raíz que se encuentra en el paso 3 anterior y guárdelos en un archivo de manifiesto temporal.

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

  8. Compruebe el contenido del manifiesto de optimización, que es un archivo de texto delimitado por líneas para cada aplicación.

Paso 3: Crear un catálogo de aplicaciones de AppStream 2.0

En este paso, utilizará la herramienta de la CLI AppStreamImageAssistant en el generador de imágenes para crear un catálogo de aplicaciones de AppStream 2.0 especificando las aplicaciones para la imagen. Para cada aplicación que tenga previsto transmitir, puede especificar el nombre, el nombre de visualización, el archivo ejecutable que se va a lanzar y el icono que se mostrará.

Para crear un catálogo de aplicaciones de AppStream 2.0
  1. Desde el escritorio del generador de imágenes, abra el Terminal desde el panel lateral o abriendo la cuadrícula de aplicaciones.

  2. Ejecute AppStreamImageAssistant --help para ver la lista de comandos disponibles. Utilizará estos comandos para añadir aplicaciones y crear una imagen.

  3. Ejecute el siguiente comando para añadir una aplicación instalada (p. ej., Chromium) a la lista de aplicaciones para los usuarios de 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

    También puede ejecutar el siguiente 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. Para agregar más aplicaciones, repita el paso 3 para cada aplicación adicional.

  5. Para ver la lista de aplicaciones que se han agregado al catálogo, junto con los metadatos, como las rutas de los iconos y los parámetros de inicio, ejecute el siguiente comando:

    AppStreamImageAssistant list-applications

  6. Para eliminar aplicaciones del catálogo, ejecute el siguiente comando:

    AppStreamImageAssistant remove-application –-name application_name

Paso 4: Crear la configuración de la aplicación y las variables de entorno predeterminadas

En este paso, creará una configuración predeterminada de la aplicación y las variables de entorno para los usuarios de AppStream 2.0. Esto permitirá a los usuarios comenzar a utilizar rápidamente las aplicaciones durante las sesiones de streaming de AppStream 2.0, sin necesidad de crear o configurar estos ajustes ellos mismos.

Para crear variables de aplicaciones y entorno predeterminadas para los usuarios
  1. Inicie la aplicación para la que desee crear la configuración predeterminada. Por ejemplo, en una ventana de Terminal, ejecute el siguiente comando para iniciar el navegador Chromium:

    [ImageBuilderAdmin]$ chromium-browser

  2. Configure las opciones de la aplicación. Por ejemplo, configure la página de inicio del navegador Chromium como https://aws.amazon.com.

  3. Ejecute los siguientes comandos para copiar la configuración de Chromium a /etc/skel:

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

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

  4. Defina las variables de entorno y agréguelas al archivo de script. Por ejemplo, ejecute los siguientes comandos:

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

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

Paso 5: Probar aplicaciones y configuraciones

En este paso, comprobará que las aplicaciones que ha agregado se ejecutan correctamente y que la configuración predeterminada de las aplicaciones y las variables de entorno funcionan según lo previsto.

Para probar las aplicaciones y la configuración predeterminada en un generador de imágenes
  1. Cree un usuario de prueba que no tenga permisos raíz. Por ejemplo, en una ventana de Terminal, ejecute los siguientes comandos para crear un usuario-prueba en el generador de imágenes:

    [ImageBuilderAdmin]$ sudo useradd -m test-user

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

  2. Cambie al usuario de prueba:

    [ImageBuilderAdmin]$ su - test-user

  3. Abra la aplicación (p. ej., Chromium) como usuario de prueba:

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

  4. Compruebe que la configuración predeterminada esté disponible para el usuario de prueba (p. ej., la página de inicio de Chromium es https://aws.amazon.com/).

  5. Compruebe que las variables de entorno estén disponibles para el usuario de prueba. Por ejemplo, ejecute el siguiente comando:

    [test-user]$ echo $FOO

    Este comando debería mostrar el resultado BAR en el terminal.

  6. Ejecute los siguientes comandos para eliminar el usuario de prueba antes de crear una imagen desde este generador de imágenes:

    # 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

Paso 6: Finalizar la creación de la imagen

En este paso, elegirá un nombre de imagen y terminará de crear la imagen.

Para crear la imagen
  1. En una ventana de Terminal, ejecute AppStreamImageAssistant create-image para crear una imagen desde su generador de imágenes. Esta imagen contiene las aplicaciones instaladas y registradas, además de los scripts de sesión y los ajustes de aplicación predeterminados que haya configurado.

    Ejecute AppStreamImageAssistant create-image --help para ver la lista de opciones disponibles. Para obtener más información, consulte la operación create-image en Creación de imágenes de AppStream 2.0 mediante programación mediante el uso de la operaciones de la CLI de Image Assistant.

  2. La sesión remota se desconecta al cabo de unos momentos. Cuando aparezca el mensaje Se ha perdido la conectividad, cierre la pestaña del navegador. Aunque la imagen se ha creado, el estado del generador de imágenes aparece como Creando instantáneas. No puede conectarse al generador de imágenes hasta que este proceso termine.

  3. Vuelva a la consola y desplácese hasta Imágenes, Registro de imágenes. Compruebe que la nueva imagen aparezca en la lista.

    Aunque la imagen se está creando, su estado en el registro de imágenes de la consola aparece como Pendiente. No puede conectarse a imágenes que estén en estado Pendiente.

  4. Elija el icono Actualizar para actualizar el estado. Una vez creada la imagen, su estado cambia a Disponible y el generador de imágenes se detiene automáticamente.

    Para seguir trabajando en la creación de imágenes, inicie el generador de imágenes y conéctese a él desde la consola, o bien cree un nuevo generador de imágenes.

Paso 7 (opcional): Etiquetar y copiar una imagen

Puede añadir una o varias etiquetas a una imagen al crearla o después de haberla creado. También puede copiar la imagen dentro de la misma región o en una nueva región dentro de la misma cuenta de Amazon Web Services. Si se copia una imagen de origen, se obtiene una imagen de destino idéntica pero distinta de aquella. Sin embargo, AWS no copia ninguna etiqueta definida por el usuario. Además, solo puede copiar las imágenes personalizadas que cree, no las imágenes base proporcionadas por AWS.

nota

Puede copiar hasta dos imágenes al mismo tiempo a un destino. Si el destino al que se va a copiar una imagen se encuentra en el límite de imagen, recibe un error. Para copiar la imagen en este caso, primero debe eliminar imágenes del destino. Una vez que el destino está por debajo de la cuota de imágenes (también denominado límite), inicie la copia de la imagen desde la región de origen. Para obtener más información, consulte Cuotas de servicio de Amazon AppStream 2.0.

Para añadir etiquetas a una imagen existente
  1. En el panel de navegación, elija Imágenes e Registro de imágenes.

  2. En la lista de imágenes, seleccione la imagen a la que desea añadir etiquetas.

  3. Seleccione Etiquetas, Agregar o editar etiquetas y, a continuación, seleccione Agregar etiqueta. Especifique la clave y el valor de la etiqueta y, a continuación, elija Guardar.

Para obtener más información, consulte Etiquetado de los recursos de Amazon AppStream 2.0.

Para copiar una imagen

Copiar una imagen entre regiones geográficamente distribuidas le permite transmitir aplicaciones desde varias regiones basadas en la misma imagen. Al transmitir sus aplicaciones más próximas a los usuarios, puede mejorar la experiencia de transmisión de aplicaciones de sus usuarios con AppStream 2.0.

  1. En el panel de navegación, elija Imágenes e Registro de imágenes.

  2. En la lista de imágenes, seleccione la imagen que desea copiar.

  3. Elija Acciones, Copiar.

  4. En el cuadro de diálogo Copiar imagen, especifique la información siguiente y, a continuación, elija Copiar imagen:.

    • Para Región de destino, elija la región en la que desea copiar la nueva imagen.

    • Para Nombre, especifique un nombre que tendrá la imagen cuando se copie al destino.

    • Para Descripción (opcional), especifique una descripción que tendrá la imagen cuando se copie al destino.

  5. Para comprobar el progreso de la operación de copia, vuelva a la consola y desplácese hasta Imágenes, Registro de imágenes. Utilice la barra de navegación para cambiar a la región de destino (si procede) y confirme que su nueva imagen aparece en la lista de imágenes.

    Primero, la nueva imagen aparece con el estado Copiando en el registro de imágenes de la consola. Una vez que la imagen se ha creado correctamente, su estado cambia a Disponible, lo que significa que ya puede utilizarla para lanzar una pila y transmitir en streaming las aplicaciones.

Paso 8: Eliminación

Por último, puede detener los generadores de imágenes en ejecución para liberar recursos y evitar cargos no deseados en su cuenta. Recomendamos detener todos los generadores de imágenes en ejecución que no se utilicen. Para obtener más información, consulte Precios de AppStream 2.0.

Para detener un generador de imágenes en ejecución
  1. En el panel de navegación, elija Imágenes, Generador de imágenes y seleccione la instancia del generador de imágenes en ejecución.

  2. Elija Acciones, Detener.