Criar uma nova versão de uma fórmula de imagem - EC2 Image Builder

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á.

Criar uma nova versão de uma fórmula de imagem

Esta seção descreve como criar uma nova versão de uma fórmula de imagem.

Crie uma nova versão de receita de imagem a partir do console

Quando você cria uma nova versão de fórmula, é praticamente o mesmo que criar uma nova fórmula. A diferença é que certos detalhes são pré-selecionados para corresponder à fórmula de base, na maioria dos casos. A lista a seguir descreve as diferenças entre criar uma nova fórmula e criar uma nova versão de uma fórmula existente.

Detalhes da fórmula de base na nova versão
  • Nome: não editável.

  • Versão: obrigatória. Esse detalhe de base não é pré-preenchido com a versão atual nem com qualquer tipo de sequência. Insira o número da versão que você deseja criar no formato <major>.<minor>.<patch>. Se a versão já existir, você encontrará um erro.

  • A opção Selecionar imagem: pré-selecionada, mas você pode editá-la. Se você alterar sua escolha para a fonte da imagem de base, você poderá perder outros detalhes que dependem da opção original escolhida por você.

    Para ver detalhes associados à seleção imagem base, escolha a guia que corresponde à sua seleção.

    Managed image
    • Sistema operacional (OS) de imagem: não editável.

    • Nome da imagem: pré-selecionado, com base na combinação de opções de imagem de base que você fez para a fórmula existente. No entanto, se você alterar a opção Selecionar imagem, você perderá o Nome da imagem pré-selecionado.

    • Opções de autoversionamento: não corresponde à sua fórmula de base. Essa opção de imagem usa como padrão a opção Usar versão do OS selecionada.

      Importante

      Se você estiver usando o auto-versionamento semântico para iniciar as compilações do pipeline, certifique-se de alterar esse valor para Usar a versão do OS mais recente disponível. Para saber mais sobre o versionamento semântico dos recursos do Image Builder, consulte ‭Controle de versão semântico no Image Builder‬.

    AWS Marketplace image
    • Assinaturas — Essa guia deve estar aberta e a imagem assinada AWS Marketplace deve ser pré-selecionada para corresponder à sua receita base. Se você alterar a imagem que sua fórmula usa como imagem de base, você pode perder outros detalhes que dependem da imagem original que você escolheu.

    Para obter mais informações sobre AWS Marketplace produtos, consulte Comprar produtos no Guia do AWS Marketplace comprador.

    Custom AMI
    • ID da AMI: obrigatório. No entanto, esta configuração não é pré-preenchida com sua entrada original. Você deve inserir o ID da AMI para sua imagem de base.

  • Configuração da instância: as configurações são pré-selecionadas, mas você pode editá-las.

    • Atendente do Systems Manager: você pode marcar ou desmarcar essa caixa de seleção para controlar a instalação do atendente do Systems Manager na nova imagem. A caixa de seleção é desmarcada por padrão para incluir o atendente do Systems Manager em sua nova imagem. Para remover o atendente do Systems Manager da imagem final, marque a caixa de seleção para que o atendente não seja incluído na sua AMI.

    • Dados do usuário: você pode usar essa área para fornecer comandos, ou um script de comando a executar, quando você inicializa sua instância de compilação. No entanto, esse valor substitui qualquer comando que o Image Builder possa ter adicionado para garantir que o Systems Manager seja instalado. Esses comandos incluem o script de limpeza que o Image Builder normalmente executa para imagens do Linux antes de criar a nova imagem.

      nota
      • Se você inserir dados do usuário, certifique-se de que o atendente do Systems Manager esteja pré-instalado na imagem de base ou que você inclua a instalação nos dados do usuário.

      • Para imagens do Linux, certifique-se de que as etapas de limpeza sejam executadas incluindo um comando para criar um arquivo vazio nomeado perform_cleanup no script de dados do usuário. O Image Builder detecta esse arquivo e executa o script de limpeza antes de criar a nova imagem. Para obter mais informações e um exemplo de script, consulte Práticas Recomendadas de segurança do EC2 Image Builder.

  • Diretório de trabalho: pré-selecionado, mas você pode editá-lo.

  • Componentes: os componentes que já estão incluídos na fórmula são exibidos na seção Componentes selecionados no final de cada uma das listas de componentes (compilação e teste). Você pode remover ou reordenar os componentes selecionados para atender às suas necessidades.

    Os componentes de endurecimento do CIS não seguem as regras padrão de ordenação de componentes nas fórmulas do Image Builder. Os componentes de endurecimento do CIS sempre são executados por último para garantir que os testes de benchmark sejam executados em relação à sua imagem de saída.

    nota

    As listas de componentes de compilação e teste exibem os componentes disponíveis com base no tipo de proprietário do componente. Para adicionar ou atualizar componentes para sua fórmula, selecione o tipo de proprietário do componente que você está procurando. Por exemplo, se você quiser adicionar um componente associado a uma imagem base na qual você se inscreveu AWS Marketplace, selecione na lista Third party managed de tipos de proprietário, ao lado da barra de pesquisa.

    Você pode definir as seguintes configurações para seu componente selecionado:

    • Opções de versionamento: pré-selecionadas, mas você pode alterá-las. Recomendamos que você escolha a opção Usar a versão mais recente disponível do componente para garantir que suas compilações de imagem sempre usem a versão mais recente do componente. Se precisar usar uma versão específica do componente em sua fórmula, você pode escolher Especificar versão do componente e inserir a versão na caixa Versão do componente que aparece.

    • Parâmetros de entrada: exibe os parâmetros de entrada que o componente aceita. O Valor é pré-preenchido com o valor da versão anterior da fórmula. Se você estiver usando esse componente pela primeira vez nesta receita e um valor padrão tiver sido definido para o parâmetro de entrada, o valor padrão aparecerá na caixa Valor com texto acinzentado. Se nenhum outro valor for inserido, o Image Builder usará o valor padrão.

      Se um parâmetro de entrada for necessário, mas não tiver um valor padrão definido no componente, você deverá fornecer um valor. O Image Builder não criará a versão da receita se houver algum parâmetro obrigatório ausente e não tiver um valor padrão definido.

      Importante

      Os parâmetros do componente são valores de texto simples e estão logados em AWS CloudTrail. Recomendamos que você use AWS Secrets Manager ou o AWS Systems Manager Parameter Store para armazenar seus segredos. Para obter mais informações sobre o Secrets Manager, consulte ‭O que é o Secrets Manager?‭‬ no AWS Secrets Manager Guia do usuário‭. Para obter mais informações sobre o ‭ AWS Systems Manager Parameter Store, consulte AWS Systems Manager ‬ Parameter Store‭‬ no AWS Systems Manager ‬ Guia do usuário‭.

    Para expandir as configurações das opções de versionamento ou dos parâmetros de entrada, você pode escolher a seta ao lado do nome da configuração. Para expandir todas as configurações de todos os componentes selecionados, você pode ativar e desativar a opção Expandir tudo.

  • Armazenamento (volumes): são pré-preenchidos. As seleções Nome do dispositivo, Snapshot e IOPS do volume raiz não são editáveis. No entanto, você pode alterar todas as demais configurações, como o Tamanho. Você também pode adicionar novos volumes e criptografar volumes novos ou existentes.

    Para criptografar volumes para as imagens que o Image Builder cria em sua conta na região de origem (onde a compilação é executada), você deve usar a criptografia do volume de armazenamento na fórmula de imagem. A criptografia executada durante a fase de distribuição da compilação é somente para imagens que são distribuídas para outras contas ou regiões.

    nota

    Se você usar criptografia para seus volumes, deverá selecionar a chave para cada volume separadamente, mesmo que a chave seja a mesma usada para o volume raiz.

Para criar uma nova versão de fórmula de imagem:
  1. Na parte superior da página de detalhes da fórmula, escolha Criar nova versão. Isso leva você à página Criar fórmula de imagem.

  2. Para criar a nova versão, faça suas alterações e depois escolha Criar fórmula de imagem.

Para obter mais informações sobre como criar uma fórmula de imagem ao criar um pipeline de imagens, consulte Etapa 2: Escolher fórmula na seção Conceitos básicos deste guia.

Crie uma receita de imagem com o AWS CLI

Para criar uma receita de imagem com o create-image-recipe comando Image Builder no AWS CLI, siga estas etapas:

Pré-requisitos

Antes de executar os comandos do Image Builder nesta seção para criar uma fórmula de imagem a partir de AWS CLI, você deve criar os componentes que a fórmula usa. O exemplo de fórmula de imagem na etapa a seguir se refere a exemplos de componentes que são criados na seção Crie um componente personalizado a partir do AWS CLI deste guia.

Depois de criar seus componentes, ou se você estiver usando componentes existentes, anote os ARNs que você deseja incluir na fórmula.

  1. Criar um arquivo JSON de entrada da CLI

    Você pode fornecer toda a entrada para o comando create-image-recipe com parâmetros de comando embutidos. No entanto, o comando resultante pode ser bastante longo. Para simplificar o comando, você pode fornecer um arquivo JSON que contenha todas as configurações da fórmula.

    nota

    A convenção de nomenclatura para os valores de dados no arquivo JSON segue o padrão especificado para os parâmetros de solicitação de ação da API Image Builder. Para revisar os parâmetros de solicitação de comando da API, consulte o CreateImageRecipecomando na Referência da API do EC2 Image Builder.

    Para fornecer os valores dos dados como parâmetros da linha de comando, consulte os nomes dos parâmetros especificados na AWS CLI Referência de comando.

    Aqui está um resumo dos parâmetros que esses exemplos especificam:

    • name (string, obrigatório): o nome da fórmula de imagem.

    • description (string): a descrição da fórmula de imagem.

    • parentImage (string, obrigatório): a imagem que a fórmula de imagem usa como base para sua imagem personalizada. O valor pode ser o ARN de imagem de base ou um ID de AMI.

      nota

      O exemplo do Linux usa uma AMI do Image Builder, e o exemplo do Windows usa um ARN.

    • semanticVersion (string, obrigatório): a versão semântica da fórmula de imagem, expressa no seguinte formato, com valores numéricos em cada posição para indicar uma versão específica: <major>.<minor>.<patch>. Por exemplo, um valor pode ser 1.0.0. Para saber mais sobre o versionamento semântico dos recursos do Image Builder, consulte ‭Controle de versão semântico no Image Builder‬.

    • components (matriz, obrigatório): contém uma variedade de objetos ComponentConfiguration. Pelo menos um componente da compilação deve ser especificado:

      nota

      O Image Builder instala os componentes na ordem em que você os especificou na fórmula. No entanto, os componentes de fortalecimento do CIS sempre são executados por último para garantir que os testes de benchmark sejam executados em relação à sua imagem de saída.

      • componentARN (string, obrigatório): o ARN do componente.

        dica

        Para usar um dos exemplos para criar sua própria fórmula de imagem, você deve substituir os ARNs de exemplo pelos ARNs dos componentes que você está usando para sua fórmula.

      • parameters (matriz de objetos): contém uma variedade de objetos ComponentParameter. Se um parâmetro de entrada for necessário, mas não tiver um valor padrão definido no componente, você deverá fornecer um valor. O Image Builder não criará a versão da receita se houver algum parâmetro obrigatório ausente e não tiver um valor padrão definido.

        Importante

        Os parâmetros do componente são valores de texto simples e estão logados em AWS CloudTrail. Recomendamos que você use AWS Secrets Manager ou o AWS Systems Manager Parameter Store para armazenar seus segredos. Para obter mais informações sobre o Secrets Manager, consulte ‭O que é o Secrets Manager?‭‬ no AWS Secrets Manager Guia do usuário‭. Para obter mais informações sobre o ‭ AWS Systems Manager Parameter Store, consulte AWS Systems Manager ‬ Parameter Store‭‬ no AWS Systems Manager ‬ Guia do usuário‭.

        • nome (string, obrigatório): o nome do parâmetro do componente a ser definido.

        • value (matriz de strings, obrigatório): contém uma matriz de strings para definir o valor do parâmetro do componente nomeado. Se houver um valor padrão definido para o componente e nenhum outro valor for fornecido, AWSTOE use o valor padrão.

    • additionalInstanceConfiguration(objeto) — Especifique configurações adicionais e scripts de lançamento para suas instâncias de compilação.

      • systemsManagerAgent(object) — Contém configurações para o agente Systems Manager em sua instância de compilação.

        • uninstallAfterBuild(Boolean) — Controla se o agente do Systems Manager é removido da imagem de compilação final antes de criar a nova AMI. Se essa opção for definida para true, o atendente será removido da imagem final. Se a opção for definida para false, o atendente será mantido para que seja incluído na nova AMI. O valor padrão é false.

          nota

          Se o atributo uninstallAfterBuild não estiver incluído no arquivo JSON e as condições a seguir forem verdadeiras, o Image Builder removerá o atendente do Systems Manager da imagem final para que ele não fique disponível na AMI:

          • O userDataOverride está vazio ou foi omitido do arquivo JSON.

          • O Image Builder instalou automaticamente o atendente do Systems Manager na instância de compilação de um sistema operacional que não tinha o atendente pré-instalado na imagem de base.

      • userDataOverride(string) — Forneça comandos ou um script de comando para executar ao iniciar sua instância de compilação.

        nota

        Os dados do usuário são sempre codificados em base 64. Por exemplo, os seguintes comandos são codificados como IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhcg==:

        #!/bin/bash mkdir -p /var/bb/ touch /var

        O exemplo do Linux usa esse valor codificado.

    Linux

    A imagem base (propriedade de parentImage) no exemplo a seguir é uma AMI. Ao usar uma AMI, você deve ter acesso à AMI, e a AMI deve estar na região de origem (a mesma região em que o Image Builder executa o comando). Salve o arquivo como create-image-recipe.json e use-o no comando create-image-recipe.

    { "name": "BB Ubuntu Image recipe", "description": "Hello World image recipe for Linux.", "parentImage": "ami-0a01b234c5de6fabc", "semanticVersion": "1.0.0", "components": [ { "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/bb$" } ], "additionalInstanceConfiguration": { "systemsManagerAgent": { "uninstallAfterBuild": true }, "userDataOverride": "IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhcg==" } }
    Windows

    O exemplo a seguir se refere à versão mais recente da imagem de base completa em inglês do Windows Server 2016. O ARN neste exemplo faz referência à imagem mais recente no SKU com base nos filtros de versão semântica que você especificou: arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/x.x.x.

    { "name": "MyBasicRecipe", "description": "This example image recipe creates a Windows 2016 image.", "parentImage": "arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/x.x.x", "semanticVersion": "1.0.0", "components": [ { "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-example-component/2019.12.02/1" }, { "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-imported-component/1.0.0/1" } ] }
    nota

    Para saber mais sobre o versionamento semântico dos recursos do Image Builder, consulte ‭Controle de versão semântico no Image Builder‬.

  2. Criar a fórmula

    Use o comando a seguir para criar a fórmula. Forneça o nome do arquivo JSON que você criou na etapa anterior no parâmetro --cli-input-json:

    aws imagebuilder create-image-recipe --cli-input-json file://create-image-recipe.json
    nota
    • É necessário incluir a notação file:// no início do caminho do arquivo JSON.

    • O caminho para o arquivo JSON deve seguir a convenção apropriada para o sistema operacional de base no qual você está executando o comando. Por exemplo, o Windows usa a barra invertida (\) para se referir ao caminho do diretório e o Linux usa a barra (/).

Importar uma VM como sua imagem de base no console

Nesta seção, vamos nos concentrar em como importar uma máquina virtual (VM) como imagem de base para sua fórmula de imagem. Aqui, não abordamos outras etapas envolvidas na criação de uma fórmula ou versão da fórmula. Para ver as etapas adicionais para criar uma nova fórmula de imagem com o assistente de criação de pipeline no console do Image Builder, consulte Assistente de console: criar AMI. Para ver as etapas adicionais para criar uma nova fórmula de imagem ou versão de fórmula, consulte Criar uma nova versão de uma fórmula de imagem.

Para importar uma VM como imagem de base para sua fórmula de imagem no console do Image Builder, siga estas etapas, junto com todas as outras etapas necessárias, para criar sua fórmula ou versão da fórmula.

  1. Na seção Selecionar imagem para a imagem de base, selecione a opção Importar imagem de base.

  2. Escolha o Sistema operacional (OS) de imagem e a Versão do OS como você faria normalmente.

Configuração de importação de VM

Quando você exporta sua VM do ambiente de virtualização, esse processo cria um conjunto de um ou mais arquivos de contêiner de disco que atuam como snapshots do ambiente, das configurações e dos dados da sua VM. Você pode usar esses arquivos para importar sua VM como imagem de base para sua fórmula de imagem. Para obter mais informações sobre como importar VMs no Image Builder, consulte Importar e exportar imagens de VM

Para especificar a localização da sua fonte de importação, siga estas etapas:

Importar fonte

Especifique a fonte do primeiro contêiner de disco ou snapshot de imagem da VM a ser importado na seção Contêiner de disco 1.

  1. Fonte: essa pode ser um bucket do S3 ou um snapshot do EBS.

  2. Selecione a localização do disco do S3: insira a localização no Amazon S3 onde suas imagens de disco estão armazenadas. Para procurar o local, escolha Browse S3.

  3. Para adicionar um contêiner de disco, escolha Adicionar contêiner de disco.

IAM role (Perfil do IAM)

Para associar um Perfil do IAM à sua configuração de importação de VM, selecione o perfil na lista suspensa de Perfil do IAM ou escolha Criar novo perfil para criar um novo. Se você criar um novo perfil, a página do console de Perfis do IAM será aberta em uma guia separada.

Configurações avançadas: opcionais

As seguintes configurações são opcionais. Com essas configurações, você pode configurar criptografia, licenciamento, tags e muito mais para a imagem de base criada pela importação.

Geral
  1. Especifique um Nome exclusivo para a imagem de base. Se você não inserir um valor, a imagem de base herdará o nome da fórmula.

  2. Especifique uma Versão para a imagem de base. Use o formato a seguir: <major>.<minor>.<patch>. Se você não inserir um valor, a imagem de base herdará a versão da fórmula.

  3. Você também pode inserir uma Descrição para a imagem de base.

Arquitetura da imagem de base

Para especificar a arquitetura da sua fonte de importação de VM, selecione um valor na lista Arquitetura.

Criptografia

Se as imagens de disco da VM estiverem criptografadas, você deverá fornecer uma chave para usar no processo de importação. Para especificar um AWS KMS key para a importação, selecione um valor na lista Criptografia (chave KMS). A lista contém chaves KMS às quais sua conta tem acesso na região atual.

Gerenciamento de licença

Quando você importa uma VM, o processo de importação detecta automaticamente o OS da VM e aplica a licença apropriada à imagem de base. Dependendo da plataforma do seu OS, os tipos de licença são os seguintes:

  • Licença incluída: Uma licença AWS apropriada para sua plataforma é aplicada à sua imagem de base.

  • Traga a sua própria licença (BYOL): Retém a licença da sua VM, se aplicável.

Para anexar as configurações de licença criadas com AWS License Manager à sua imagem base, selecione na lista Nome da configuração da licença. Para obter mais informações sobre o License Manager, consulte Trabalhando com AWS License Manager

nota
  • As configurações de licença contêm regras de licenciamento com base nos termos de seus contratos empresariais.

  • O Linux só oferece suporte a licenças BYOL.

Tags (imagem de base)

As tags usam pares de chave–valor para atribuir texto pesquisável ao seu recurso do Image Builder. Para especificar tags para a imagem de base importada, insira pares de chave–valor com as caixas Chave e Valor.

Para adicionar uma tag, escolha Add tag. Para remover uma tag, selecione Remover tag.