Red Hat Training

A Red Hat training course is available for RHEL 8

6.5. Preparando e carregando imagens de nuvens com o Image Builder

O Image Builder pode criar imagens personalizadas do sistema prontas para uso em nuvens de vários fornecedores. Para usar sua imagem personalizada do sistema RHEL em uma nuvem, crie a imagem do sistema com o Image Builder usando o respectivo tipo de saída, configure seu sistema para carregar a imagem e carregue a imagem para sua conta na nuvem. A partir do Red Hat Enterprise Linux 8.3, a capacidade de empurrar nuvens de imagens personalizadas através do aplicativo Image Builder no console web RHEL está disponível para um subconjunto dos provedores de serviços que suportamos, tais como AWS e Azure clouds. Veja Pushing images to AWS Cloud AMI e Pushing VHD images to Azure cloud.

6.5.1. Preparação para o carregamento de imagens AWS AMI

Isto descreve os passos para configurar um sistema de carregamento de imagens AWS AMI.

Pré-requisitos

Procedimento

  1. Instale o Python 3 e a ferramenta pip:

    # yum install python3
    # yum install python3-pip
  2. Instale as ferramentas da linha de comando AWS com pip:

    # pip3 instalar awscli
  3. Execute o seguinte comando para definir seu perfil. O terminal solicita que você forneça suas credenciais, região e formato de saída:

    $ aws configure
    AWS Access Key ID [None]:
    AWS Secret Access Key [None]:
    Default region name [None]:
    Default output format [None]:
  4. Defina um nome para seu balde e use o seguinte comando para criar um balde:

    $ BUCKET=bucketname
    $ aws s3 mb s3://$BUCKET

    Substituir bucketname pelo nome real do balde. Deve ser um nome globalmente único. Como resultado, sua caçamba é criada.

  5. Então, para conceder permissão de acesso ao balde S3, crie um Papel S3 no IAM vmimport, se você ainda não o fez no passado:

    $ printf '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] }' > trust-policy.json
    $ printf '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::%s", "arn:aws:s3:::%s/*" ] }, { "Effect":"Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource":"*" } ] }' $BUCKET $BUCKET > role-policy.json
    $ aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json
    $ aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json