Tutorial: Criar uma imagem personalizada do AppStream 2.0 baseada em Linux - Amazon AppStream 2.0

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial: Criar uma imagem personalizada do AppStream 2.0 baseada em Linux

Este tutorial descreve como criar uma imagem personalizada do Amazon AppStream 2.0 baseada em Linux que contém aplicações que podem ser transmitidas por streaming para os usuários.

Etapa 1: Instalar aplicações do Linux no construtor de imagens

Nesta etapa, conecte um construtor de imagens e instale aplicações nele.

Para instalar aplicativos no criador de imagens
  1. Conecte-se ao construtor de imagens executando uma das seguintes ações:

    • Use o console do AppStream 2.0 (somente para conexões pela web)

    • Criando um URL de streaming (para conexões pela web ou por cliente do AppStream 2.0)

      nota

      Você se conectará como um usuário ImageBuilderAdmin na área de trabalho do Amazon Linux GNOME e terá privilégios de administrador raiz.

  2. Instale as aplicações que precisar. Por exemplo, para instalar um navegador Chromium de um repositório yum público, abra a aplicação do Terminal e execute o seguinte comando:

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

    nota

    Baixe e instale aplicativos somente de sites em que você confia.

Etapa 2: Gerar o arquivo de manifesto de otimização de aplicações

Nesta etapa, gere um arquivo de manifesto para cada aplicação instalada na etapa 1.

Como gerar um arquivo de manifesto para otimizar a performance de inicialização de uma aplicação
  1. Garanta que a aplicação (por exemplo, Chromium) que você está tentando otimizar tenha sido inicializada e esteja em execução.

  2. Em uma janela do Terminal, execute o seguinte comando para listar os processos relacionados à aplicação:

    [ImageBuilderAdmin]$ ps -ef | grep chromium

  3. Encontre o PID pai raiz na saída do comando acima. Veja a seguir um exemplo de saída, em que o PID pai raiz é 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. Mantenha a aplicação em execução e use os componentes iniciais exigidos pelos usuários. Isso garante que esses componentes sejam capturados pelo processo de otimização.

  5. Crie um arquivo de script (por exemplo, ~/getfilestool.sh) com o seguinte conteúdo:

    #!/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. Execute o seguinte comando para verificar se o arquivo pode ser executado:

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

  7. Execute o seguinte comando para capturar todos os arquivos em execução do processo pai raiz encontrado na etapa 3 acima e salve-os em um arquivo de manifesto temporário:

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

  8. Verifique o conteúdo do manifesto de otimização, que é um arquivo de texto delimitado por linhas para cada aplicação.

Etapa 3: Criar um catálogo de aplicações do AppStream 2.0

Nesta etapa, use a ferramenta AppStreamImageAssistant da CLI no construtor de imagens para criar um catálogo de aplicações do AppStream 2.0 especificando aplicações para uma imagem. Para cada aplicação da qual pretende fazer streaming, você pode especificar o nome, o nome de exibição, o arquivo executável para inicializar e o ícone para exibição.

Como criar um catálogo de aplicações do AppStream 2.0
  1. Na área de trabalho do construtor de imagens, abra o Terminal pelo painel lateral ou abrindo a grade da aplicação.

  2. Execute AppStreamImageAssistant --help para ver a lista de comandos disponíveis. Você usará esses comandos para adicionar aplicações e criar uma imagem.

  3. Execute o seguinte comando para adicionar uma aplicação instalada (por exemplo, Chromium) à lista de aplicações para os usuários do 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

    Como alternativa, você pode executar o seguinte 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 adicionar mais aplicações, repita a etapa 3 para cada aplicação adicional.

  5. Para ver a lista de aplicações que foram adicionadas ao catálogo e seus metadados, como caminhos de ícones e parâmetros de inicialização, execute o seguinte comando:

    AppStreamImageAssistant list-applications

  6. Para remover aplicações do catálogo, execute o seguinte comando:

    AppStreamImageAssistant remove-application –-name application_name

Etapa 4: Criar configurações padrão de aplicação e variáveis de ambiente

Nesta etapa, crie configurações padrão de aplicação e variáveis de ambiente para os usuários do AppStream 2.0. Isso permite que os usuários comecem a usar aplicações rapidamente durante as sessões de streaming do AppStream 2.0, sem a necessidade de criar ou definir essas configurações por conta própria.

Como criar configurações padrão de aplicação e variáveis de ambiente para os usuários
  1. Inicialize a aplicação para a qual você deseja criar as configurações padrão. Por exemplo, em uma janela do Terminal, execute o seguinte comando para iniciar o navegador Chromium:

    [ImageBuilderAdmin]$ chromium-browser

  2. Defina as configurações da aplicação. Por exemplo, defina a página inicial do navegador Chromium como https://aws.amazon.com.

  3. Execute os seguintes comandos para copiar a configuração do Chromium para /etc/skel:

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

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

  4. Defina as variáveis de ambiente e adicione-as ao arquivo de script. Por exemplo, execute os seguintes comandos:

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

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

Etapa 5: Testar aplicações e configurações

Nesta etapa, verifique se as aplicações que você adicionou são executadas corretamente e se as configurações padrão de aplicação e as variáveis de ambiente funcionam conforme o esperado.

Como testar aplicações e configurações padrão em um construtor de imagens
  1. Crie um usuário de teste que não tenha permissões de raiz. Por exemplo, em uma janela do Terminal, execute os seguintes comandos para criar test-user no construtor de imagens:

    [ImageBuilderAdmin]$ sudo useradd -m test-user

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

  2. Mude para o usuário de teste:

    [ImageBuilderAdmin]$ su - test-user

  3. Inicialize a aplicação (por exemplo, Chromium) como o usuário de teste:

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

  4. Verifique se as configurações padrão estão disponíveis para o usuário de teste (por exemplo, a página inicial do Chromium é https://aws.amazon.com/).

  5. Verifique se as variáveis de ambiente estão disponíveis para o usuário de teste. Por exemplo, execute o comando a seguir:

    [test-user]$ echo $FOO

    Esse comando deve exibir a saída BAR no terminal.

  6. Execute os seguintes comandos para excluir o usuário de teste antes de criar uma imagem usando esse construtor de imagens:

    # 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

Etapa 6: Terminar a criação da imagem

Nesta etapa, selecione um nome de imagem e termine a criação da sua imagem.

Para criar a imagem
  1. Em uma janela do Terminal, crie uma imagem do construtor de imagens executando AppStreamImageAssistant create-image. Essa imagem contém suas aplicações instaladas e registradas, além de todos os scripts de sessão e configurações padrão de aplicação que você definiu.

    Para ver a lista de opções disponíveis, execute AppStreamImageAssistant create-image --help. Para obter mais informações, consulte a operação create-image em Crie sua imagem Amazon AppStream 2.0 programaticamente usando as operações do Image Assistant CLI.

  2. A sessão remota é desconectada após instantes. Quando a mensagem Lost Connectivity (Conectividade perdida) aparecer, feche a guia do navegador. Enquanto a imagem é criada, o status do criador de imagens aparece como Snapshotting (Criação de snapshots). Não é possível se conectar ao criador de imagens até que esse processo seja concluído.

  3. Retorne ao console e vá até Images, Image Registry. Verifique se a nova imagem é exibida na lista.

    Enquanto a imagem estiver sendo criada, o status dela no registro de imagens do console aparece como Pending (Pendente). Não é possível se conectar a imagens com status Pendente.

  4. Selecione o ícone Atualizar para atualizar o status. Assim que a imagem for criada, o status da imagem muda para Available (Disponível) e o criador de imagens é interrompido automaticamente.

    Para continuar a criar imagens, inicie o criador de imagens e conecte-se a ele a partir do console ou crie um novo criador de imagens.

Etapa 7 (opcional): marcar e copiar uma imagem

Você pode adicionar uma ou mais tags a uma imagem durante a criação de imagens ou depois de criar uma imagem. Você também pode copiar a imagem na mesma região ou em uma nova região na mesma conta da Amazon Web Services. Copiar uma imagem de origem resulta em uma imagem idêntica em um destino distinto. No entanto, a AWS não copia nenhuma etiqueta definida pelo usuário. Além disso, você só pode copiar as imagens personalizadas criadas por você, não as imagens base fornecidas pela AWS.

nota

Você pode copiar até duas imagens em um destino ao mesmo tempo. Se o destino no qual você está copiando uma imagem já atingiu o limite de imagens, você receberá um erro. Para copiar a imagem, neste caso, você deve remover imagens do destino. Depois que o destino estiver abaixo da cota de imagem (também conhecida como limite), inicie a cópia da imagem na região de origem. Para obter mais informações, consulte Quotas de serviços da Amazon AppStream 2.0.

Para adicionar tags a uma imagem existente
  1. No painel de navegação, selecione Images (Imagens) e Image Registry (Registro de imagens).

  2. Na lista de imagens, selecione a imagem à qual você deseja adicionar tags.

  3. Selecione Etiquetas, escolha Adicionar/editar etiquetas e selecione Adicionar etiqueta. Especifique a chave e o valor da etiqueta e selecione Salvar.

Para obter mais informações, consulte Marcando seus recursos da Amazon AppStream 2.0.

Como copiar uma imagem

Copiar uma imagem em regiões geográficas diferentes permite o streaming de aplicativos de várias regiões com base na mesma imagem. Ao fazer streaming de aplicações mais perto dos usuários, você pode melhorar a experiência de streaming de aplicações para os usuários com o AppStream 2.0.

  1. No painel de navegação, selecione Images (Imagens) e Image Registry (Registro de imagens).

  2. Na lista de imagens, selecione a imagem que você deseja copiar.

  3. Selecione Actions (Ações) e Copy (Copiar).

  4. Na caixa de diálogo Copy Image (Copiar imagens), especifique as informações a seguir e, em seguida, selecione Copy Image: (Copiar imagem:).

    • Em Destination region (Região de destino), selecione a região na qual a nova imagem será copiada.

    • Em Name (Nome), especifique o nome que a imagem terá quando for copiada no destino.

    • Em Description (Descrição) (opcional), especifique a descrição que a imagem terá quando for copiada no destino.

  5. Para verificar o andamento da operação de cópia, volte ao console e navegue até Images (Imagens) e Image Registry (Registro de imagens). Use a barra de navegação para mudar para a região de destino (se aplicável) e verifique se a nova imagem é exibida na lista de imagens.

    A nova imagem é exibida inicialmente com o status Copying (Copiando) no registro de imagens do console. Quando a imagem é criada com êxito, o status muda para Disponível. Isso significa que você pode usá-la para iniciar uma pilha e fazer streaming de seus aplicativos.

Etapa 8: limpar

Por fim, interrompa os construtores de imagens em execução para liberar recursos e evitar despesas não intencionais em sua conta. É recomendável interromper qualquer construtor de imagens em execução que não esteja sendo usado. Para obter mais informações, consulte Preços do Amazon AppStream 2.0.

Para interromper o construtor de imagens em execução
  1. No painel de navegação, escolha Images, Image Builders, e selecione a instância do construtor de imagens em execução.

  2. Escolha Actions, Stop.