Red Hat Training

A Red Hat training course is available for RHEL 8

Composição de uma imagem personalizada do sistema RHEL

Red Hat Enterprise Linux 8

Criando imagens de sistema personalizadas com o Image Builder no Red Hat Enterprise Linux 8

Resumo

O Image Builder é uma ferramenta para criar imagens de sistema customizadas e prontas para implantação: discos de instalação, máquinas virtuais, imagens específicas de fornecedores de nuvens e outros. O Image Builder permite criar essas imagens mais rapidamente em comparação com procedimentos manuais, pois abstrai as especificidades de cada tipo de saída. Aprenda como configurar o Image Builder e criar imagens com ele.

Tornando o código aberto mais inclusivo

A Red Hat tem o compromisso de substituir a linguagem problemática em nosso código, documentação e propriedades da web. Estamos começando com estes quatro termos: master, slave, blacklist e whitelist. Por causa da enormidade deste esforço, estas mudanças serão implementadas gradualmente ao longo de vários lançamentos futuros. Para mais detalhes, veja a mensagem de nosso CTO Chris Wright.

Fornecendo feedback sobre a documentação da Red Hat

Agradecemos sua contribuição em nossa documentação. Por favor, diga-nos como podemos melhorá-la. Para fazer isso:

  • Para comentários simples sobre passagens específicas:

    1. Certifique-se de que você está visualizando a documentação no formato Multi-page HTML. Além disso, certifique-se de ver o botão Feedback no canto superior direito do documento.
    2. Use o cursor do mouse para destacar a parte do texto que você deseja comentar.
    3. Clique no pop-up Add Feedback que aparece abaixo do texto destacado.
    4. Siga as instruções apresentadas.
  • Para enviar comentários mais complexos, crie um bilhete Bugzilla:

    1. Ir para o site da Bugzilla.
    2. Como Componente, use Documentation.
    3. Preencha o campo Description com sua sugestão de melhoria. Inclua um link para a(s) parte(s) relevante(s) da documentação.
    4. Clique em Submit Bug.

Capítulo 1. Descrição do construtor de imagens

1.1. Introdução ao Image Builder

Você pode usar o Image Builder para criar imagens de sistema personalizadas do Red Hat Enterprise Linux, incluindo imagens de sistema preparadas para implantação em plataformas de nuvem. O Image Builder trata automaticamente dos detalhes de configuração para cada tipo de saída, sendo assim mais fácil de usar e mais rápido de trabalhar do que os métodos manuais de criação de imagens. Você pode acessar a funcionalidade do Image Builder através de uma interface de linha de comando na ferramenta composer-cli, ou de uma interface gráfica de usuário no console web RHEL 8.

A partir do Red Hat Enterprise Linux 8.3, o backend osbuild-composer substitui lorax-composer. O novo serviço fornece APIs REST para a construção de imagens. Como resultado, os usuários podem se beneficiar de um backend mais confiável e de imagens de saída mais previsíveis.

O Image Builder funciona como um serviço de sistema osbuild-composer. Você pode interagir com este serviço através de duas interfaces:

  • Ferramenta CLI composer-cli para executar comandos no terminal. Este método é o preferido.
  • Plug-in GUI para o console web RHEL 8.

1.2. Terminologia do Image Builder

Projeto

Os projetos definem imagens personalizadas do sistema listando pacotes e personalizações que farão parte do sistema. Os projetos podem ser editados e são versionados. Quando uma imagem do sistema é criada a partir de um projeto, a imagem é associada ao projeto na interface Image Builder do console web RHEL 8.

As plantas são apresentadas ao usuário como texto simples no formato de Tom's Obvious, Minimal Language (TOML).

Compor
Os compostos são construções individuais de uma imagem do sistema, com base em uma versão particular de um determinado projeto. Compor como um termo refere-se à imagem do sistema, os logs de sua criação, entradas, metadados e o próprio processo.
Customizações
Customizações são especificações para o sistema, que não são pacotes. Isto inclui usuários, grupos e chaves SSH.

1.3. Formatos de saída do Image Builder

O Image Builder pode criar imagens em múltiplos formatos de saída mostrados na tabela a seguir.

Tabela 1.1. Formatos de saída do Image Builder

DescriçãoNome CLIextensão do arquivo

QEMU QCOW2 Imagem

qcow2

.qcow2

Arquivo TAR

tar

.tar

Disco de imagem da máquina Amazon

ami

.ami

Imagem do disco Azure

vhd

.vhd

Disco máquina virtual VMware

vmdk

.vmdk

Abertura

openstack

.qcow2

RHEL para Edge

rhel-edge-commit

.tar

1.4. Requisitos do sistema Image Builder

A ferramenta osbuild-composer subjacente ao Image Builder realiza uma série de ações potencialmente inseguras e inseguras enquanto cria as imagens do sistema. Por este motivo, use uma máquina virtual para executar o Image Builder.

O ambiente onde o Image Builder funciona, por exemplo a máquina virtual, deve atender aos requisitos listados na tabela a seguir.

Tabela 1.2. Requisitos do sistema Image Builder

ParâmetroValor Mínimo Requerido

Tipo de sistema

Uma máquina virtual dedicada

Processador

2 núcleos

Memória

4 GiB

Espaço em disco

20 GiB

Privilégios de acesso

Nível de administrador (raiz)

Rede

Conectividade com a Internet

Nota

Não há suporte para a criação de imagens em máquinas virtuais instaladas diretamente nos sistemas UEFI.

Capítulo 2. Instalando o Image Builder

Antes de utilizar o Image Builder, você deve instalar o Image Builder em uma máquina virtual.

2.1. Instalando o Image Builder em uma máquina virtual

Para instalar o Image Builder em uma máquina virtual dedicada, siga estes passos:

Pré-requisitos

  • Conecte-se à máquina virtual.
  • A máquina virtual do Image Builder deve ser instalada, assinada e em funcionamento.

Procedimento

  1. Instale o Image Builder e outros pacotes necessários na máquina virtual:

    • osbuild-composer
    • compositor-cli
    • cockpit-compositor
    • bash-completion
    # yum instalar osbuild-composer composer-cli cockpit-composer bash-completion

    O console web é instalado como uma dependência do pacote cockpit-composer.

  2. Habilitar o Image Builder a começar após cada reinicialização:

    # systemctl enable --now osbuild-composer.socket
    # systemctl enable cockpit.socket

    Os serviços osbuild-composer e cockpit começam automaticamente no primeiro acesso.

  3. Configurar o firewall do sistema para permitir o acesso ao console web:

    # firewall-cmd --add-service=cockpit && firewall-cmd --add-service=cockpit --permanente
  4. Carregue o script de configuração do shell para que o recurso de autocompletar para o comando composer-cli comece a funcionar imediatamente sem reiniciar:

    $ source  /etc/bash_completion.d/composer-cli
Importante

O osbuild-composer é o novo mecanismo backend que será o padrão preferido e o foco de todas as novas funcionalidades, começando com o Red Hat Enterprise Linux 8.3 e mais tarde. O backend anterior lorax-composer é considerado obsoleto, receberá apenas correções selecionadas para o restante do ciclo de vida do Red Hat Enterprise Linux 8 e será omitido de futuros lançamentos principais. Recomenda-se a desinstalação do lorax-composer em favor do osbuild-composer.

2.2. Revertendo para lorax-composer Image Builder backend

O backend osbuild-composer, embora muito mais extensível, não atinge atualmente a paridade de características com o anterior lorax-composer backend.

Para voltar ao backend anterior, siga os passos:

Pré-requisitos

  • Você instalou o pacote osbuild-composer

Procedimento

  1. Remover o backend osbuild-composer.

    # yum remover osbuild-composer
  2. No pacote /etc/yum.conf file, adicione uma entrada de exclusão para osbuild-composer.

    # cat /etc/yum.conf
    [main]
    gpgcheck=1
    installonly_limit=3
    clean_requirements_on_remove=True
    best=True
    skip_if_unavailable=False
    exclude=osbuild-composer
  3. Instale o pacote "lorax-composer".

    # yum instalar lorax-composer

Recursos adicionais

Capítulo 3. Criação de imagens do sistema com interface de linha de comando Image Builder

O Image Builder é uma ferramenta para criar imagens personalizadas do sistema. Para controlar o Image Builder e criar imagens de seu sistema personalizado, use a interface de linha de comando que é atualmente o método preferido para usar o Image Builder.

3.1. Interface de linha de comando do Image Builder

A interface de linha de comando do Image Builder é atualmente o método preferido para usar o Image Builder. Ele oferece mais funcionalidades do que a interface do console Web. Para usar esta interface, execute o comando composer-cli com as opções e subcomandos adequados.

O fluxo de trabalho para a interface da linha de comando pode ser resumido da seguinte forma:

  1. Exportar (save) a definição do plano para um arquivo de texto simples
  2. Editar este arquivo em um editor de texto
  3. Importar (push) o arquivo de texto do projeto de volta para o Image Builder
  4. Executar uma composição para construir uma imagem a partir do projeto
  5. Exportar o arquivo de imagem para baixá-lo

Além dos subcomandos básicos para alcançar este procedimento, o comando composer-cli oferece muitos subcomandos para examinar o estado das plantas e composições configuradas.

Para executar o comando composer-cli como não-root, o usuário deve estar nos grupos weldr ou root.

3.2. Criação de um projeto do Image Builder com interface de linha de comando

Este procedimento descreve como criar um novo projeto do Image Builder utilizando a interface da linha de comando.

Procedimento

  1. Crie um arquivo de texto simples com o seguinte conteúdo:

    name = "BLUEPRINT-NAME"
    description = "LONG FORM DESCRIPTION TEXT"
    version = "0.0.1"
    modules = []
    groups = []

    Substitua BLUEPRINT-NAME e LONG FORM DESCRIPTION TEXT por um nome e uma descrição para seu projeto.

    Substituir 0.0.1 por um número de versão de acordo com o esquema de Versionamento Semântico.

  2. Para cada pacote que você deseja incluir no projeto, acrescente as seguintes linhas ao arquivo:

    [[packages]]
    name = "package-name"
    version = "package-version"

    Substituir package-name pelo nome do pacote, tais como httpd, gdb-docou coreutils.

    Substituir package-version por uma versão para usar. Este campo suporta as especificações da versão dnf:

    • Para uma versão específica, use o número exato da versão, como 8.30.
    • Para a última versão disponível, use o asterisco *.
    • Para uma versão menor mais recente, utilize o formato 8.*.
  3. As plantas podem ser personalizadas de várias maneiras. Para este exemplo, a Multi-Tarefa Simultânea (SMT) pode ser desabilitada executando os passos abaixo. Para personalizações adicionais disponíveis, consulte Personalizações de Imagem Suportadas.

    [customizations.kernel]
    append = "nosmt=force"
  4. Salve o arquivo como BLUEPRINT-NAME.toml e feche o editor de texto.
  5. Empurrar (importar) o plano:

    # composer-cli blueprints push BLUEPRINT-NAME.toml

    Substitua BLUEPRINT-NAME pelo valor que você utilizou nas etapas anteriores.

  6. Para verificar se o plano foi empurrado e existe, liste os planos existentes:

    # lista de plantas compositor-cli
  7. Verifique se os componentes e versões listados no plano e suas dependências são válidos:

    # composer-cli projeta des-solver BLUEPRINT-NAME
Nota

Você é capaz de criar imagens usando o comando composer-cli como não-root. Para fazer isso, adicione seu usuário aos grupos weldr ou root. Para adicionar seu usuário ao grupo weldr, execute os seguintes passos:

# usermod -a -G weldr user
$ newgrp weldr

3.3. Edição de um projeto do Image Builder com interface de linha de comando

Este procedimento descreve como editar um projeto existente do Image Builder na interface da linha de comando.

Procedimento

  1. Salvar (exportar) o plano para um arquivo de texto local:

    # plantas compositor-cli salvar BLUEPRINT-NAME
  2. Edite o arquivo BLUEPRINT-NAME.toml com um editor de texto de sua escolha e faça suas mudanças.
  3. Antes de terminar com as edições, certifique-se de que o arquivo seja um plano válido:

    1. Remova esta linha, se presente:

      embalagens = []
    2. Aumentar o número da versão. Lembre-se de que as versões do Image Builder devem usar o esquema de Versionamento Semântico. Observe também que se você não alterar a versão, o componente patch da versão é aumentado automaticamente.
    3. Verifique se o conteúdo é válido para as especificações TOML. Consulte a documentação TOML para mais informações.

      Nota

      A documentação TOML é um produto comunitário e não é suportada pela Red Hat. Você pode relatar qualquer problema com a ferramenta em https://github.com/toml-lang/toml/issues

  4. Salve o arquivo e feche o editor.
  5. Empurrar (importar) a planta de volta para o Image Builder:

    # composer-cli blueprints push BLUEPRINT-NAME.toml

    Observe que você deve fornecer o nome do arquivo incluindo a extensão .toml, enquanto em outros comandos você usa apenas o nome do plano.

  6. Para verificar se o conteúdo carregado no Image Builder corresponde às suas edições, liste o conteúdo do plano:

    # os projetos compositor-cli mostram BLUEPRINT-NAME
  7. Verifique se os componentes e versões listados no plano e suas dependências são válidos:

    # composer-cli projeta des-solver BLUEPRINT-NAME

3.4. Criação de uma imagem do sistema com o Image Builder na interface de linha de comando

Este procedimento mostra como construir uma imagem personalizada usando a interface de linha de comando Image Builder.

Pré-requisitos

  • Você tem um plano preparado para a imagem.

Procedimento

  1. Comece a composição:

    # composer-cli compose start BLUEPRINT-NAME IMAGE-TYPE

    Substituir BLUEPRINT-NAME pelo nome do plano, e IMAGE-TYPE pelo tipo de imagem. Para valores possíveis, consulte a saída do comando composer-cli compose types.

    O processo de composição começa em segundo plano e é mostrado o UUID do composto.

  2. Aguarde até que a composição esteja pronta. Por favor, note que isto pode levar vários minutos.

    Para verificar o status do composto:

    # status de composição compositor-cli

    Um composto acabado mostra um valor de status FINISHED. Identificar o composto na lista por sua UUID.

  3. Uma vez que a composição tenha terminado, baixe o arquivo de imagem resultante:

    # compositor-cli compor imagem UUID

    Substituir UUID pelo valor UUID mostrado nas etapas anteriores.

    Você também pode baixar os logs usando o composer-cli compose logs UUID ou os metadados usando o comando composer-cli compose metadata UUID comando.

3.5. Comandos básicos de linha de comando do Image Builder

A interface de linha de comando do Image Builder oferece os seguintes subcomandos.

Manipulação de plantas

Liste todos os projetos disponíveis
# lista de plantas compositor-cli
Mostrar o conteúdo de um plano no formato TOML
# os projetos compositor-cli mostram BLUEPRINT-NAME
Salvar (exportar) o conteúdo do plano no formato TOML em um arquivo BLUEPRINT-NAME.toml
# plantas compositor-cli salvar BLUEPRINT-NAME
Remover um plano
# composer-cli blueprints apagar BLUEPRINT-NAME
Empurrar (importar) um arquivo de plano no formato TOML para o Image Builder
# projeto do compositor-cli empurra BLUEPRINT-NAME

Composição de imagens a partir de plantas

Comece uma composição
# composer-cli compose start BLUEPRINT COMPOSE-TYPE

Substituir BLUEPRINT pelo nome do projeto a ser construído e COMPOSE-TYPE pelo tipo de imagem de saída.

Liste todas as composições
# lista de composição compositor-cli
Liste todas as composições e seu status
# status de composição compositor-cli
Cancelar uma composição em execução
# composer-cli compose cancelar COMPOSE-UUID
Eliminar um composto acabado
# composer-cli compôr apagar COMPOSE-UUID
Mostrar informações detalhadas sobre um composto
# composer-cli compose info COMPOSE-UUID
Download do arquivo de imagem de um composto
# compositor-cli compor imagem COMPOSE-UUID

Recursos adicionais

  • A página composer-cli(1) do manual fornece uma lista completa dos subcomandos e opções disponíveis:

    $ homem compositor-cli
  • O comando composer-cli fornece ajuda sobre os subcomandos e opções:

    # ajuda compositor-cli

3.6. Formato do projeto do Image Builder

Os projetos do Image Builder são apresentados ao usuário como texto simples no formato de Tom's Obvious, Minimal Language (TOML).

Os elementos de um típico arquivo de planta incluem:

Os metadados do projeto
name = "BLUEPRINT-NAME"
description = "LONG FORM DESCRIPTION TEXT"
version = "VERSION"

Substitua BLUEPRINT-NAME e LONG FORM DESCRIPTION TEXT por um nome e uma descrição para seu projeto.

Substituir VERSION por um número de versão de acordo com o esquema de Versionamento Semântico.

Esta parte está presente apenas uma vez para todo o arquivo do projeto.

A entrada modules descreve os nomes dos pacotes e a versão correspondente do glob a ser instalada na imagem.

A entrada group descreve um grupo de pacotes a serem instalados na imagem. Os grupos categorizam seus pacotes em:

  • Obrigatório
  • Padrão
  • Opcional

    O Blueprints instala os pacotes obrigatórios. Não há nenhum mecanismo para selecionar os pacotes opcionais.

Grupos a incluir na imagem
[[groups]]
name = "group-name"

Substituir group-name pelo nome do grupo, tais como anaconda-tools, widget, wheel ou users.

Pacotes a incluir na imagem
[[packages]]
name = "package-name"
version = "package-version"

Substitua package-name pelo nome do pacote, tais como httpd, gdb-docou coreutils.

Substituir package-version por uma versão para usar. Este campo suporta as especificações da versão dnf:

  • Para uma versão específica, use o número exato da versão, como 8.30.
  • Para a última versão disponível, use o asterisco *.
  • Para uma versão menor mais recente, utilize o formato 8.*.

Repita este bloco para cada pacote a ser incluído.

3.7. Personalizações de imagens suportadas

Uma série de personalizações de imagens são suportadas neste momento dentro dos planos. Para fazer uso destas opções, elas devem ser inicialmente configuradas no projeto e importadas (empurradas) para o Image Builder.

Nota

Essas personalizações não são atualmente suportadas dentro da interface gráfica de usuário do cockpit que acompanha o projeto.

Procedimento

  1. Defina o nome da hostname da imagem:

    [customizations]
    hostname = "baseimage"
  2. Especificações do usuário para a imagem do sistema resultante:

    [[customizations.user]]
    name = "USER-NAME"
    description = "USER-DESCRIPTION"
    password = "PASSWORD-HASH"
    key = "PUBLIC-SSH-KEY"
    home = "/home/USER-NAME/"
    shell = "/usr/bin/bash"
    groups = ["users", "wheel"]
    uid = NUMBER
    gid = NUMBER
    Importante

    Para gerar o hash, você deve instalar python3 em seu sistema. O seguinte comando irá instalar o pacote python3.

    # yum instalar python3

    Substitua PASSWORD-HASH pelo hash de senha atual. Para gerar o hash, use um comando como:

    $ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw===getpass.getpass("Confirmar: ")) else exit())

    Substitua PUBLIC-SSH-KEY pela chave pública atual.

    Substituir os outros titulares de lugar por valores adequados.

    Deixe de fora qualquer uma das linhas conforme necessário, apenas o nome do usuário é necessário.

    Repita este bloco para que cada usuário inclua.

  3. Especificações do grupo para a imagem do sistema resultante:

    [[customizations.group]]
    name = "GROUP-NAME"
    gid = NUMBER

    Repita este bloco para cada grupo a incluir.

  4. Definir uma chave ssh de usuário existente:

    [[customizations.sshkey]]
    user = "root"
    key = "PUBLIC-SSH-KEY"
    Nota

    Esta opção só é aplicável aos usuários existentes. Para criar um usuário e definir uma chave ssh, use a personalização do User specifications for the resulting system image.

  5. Anexar uma opção de parâmetro de inicialização do kernel aos valores padrão:

    [customizations.kernel]
    append = "KERNEL-OPTION"
  6. Defina o nome do hospedeiro da imagem:

    [customizations]
    hostname = "BASE-IMAGE"
  7. Adicione um grupo para a imagem resultante do sistema:

    [[customizations.group]]
    name = "USER-NAME"
    gid = "NUMBER"

    Somente o nome é obrigatório e o GID é opcional.

  8. Defina o fuso horário e os servidores Network Time Protocol (NTP) para a imagem resultante do sistema:

    [customizations.timezone]
    timezone = "TIMEZONE"
    ntpservers = "NTP_SERVER"

    Se você não definir um fuso horário, o sistema usa Universal Time, Coordinated (UTC) como padrão. A configuração dos servidores NTP é opcional.

  9. Defina as configurações locais para a imagem do sistema resultante:

    [customizations.locale]
    languages = ["LANGUAGE"]
    keyboard = "KEYBOARD"

    A configuração das opções de idioma e teclado é obrigatória. Você pode adicionar vários idiomas. O primeiro idioma que você adicionar será o idioma principal e os outros idiomas serão secundários.

  10. Defina o firewall para a imagem resultante do sistema:

    [customizations.firewall]
    port = ["PORTS"]

    Você pode usar as portas numéricas, ou seus nomes do arquivo /etc/services para habilitar as listas.

  11. Personalizar os serviços de firewall:

    Reveja os serviços de firewall disponíveis.

    $ firewall-cmd --get-services

    No projeto, na seção customizations.firewall.service, especifique os serviços de firewall que você deseja personalizar.

    [customizations.firewall.services]
    enabled = ["SERVICES"]
    disabled = ["SERVICES"]

    Os serviços listados em firewall.services são diferentes dos nomes disponíveis no arquivo /etc/services.

    Opcionalmente, você pode personalizar os serviços de firewall para a imagem do sistema que você planeja criar.

    Nota

    Se você não quiser personalizar os serviços de firewall, omitir as seções [customizations.firewall] e [customizations.firewall.services] do projeto.

  12. Defina quais serviços devem ser habilitados durante o tempo de inicialização:

    [customizations.services]
    enabled = ["SERVICES"]
    disabled = ["SERVICES"]

    Você pode controlar quais serviços devem ser habilitados durante o tempo de inicialização. Alguns tipos de imagens já possuem serviços habilitados ou desabilitados para que a imagem funcione corretamente e esta configuração não possa ser anulada.

  13. Adicione arquivos de um repositório git ao seu projeto:

    [[repos.git]]
    rpmname = "RPM-NAME"
    rpmversion = "RPM-VERSION"
    rpmrelease = "RPM-RELEASE"
    summary = "RPM-SUMMARY"
    repo = "REPO-URL"
    ref = "GIT-REF"
    destination = "SERVICES"

    Você pode usar entradas para adicionar arquivos de um repositório git à imagem criada.

    Por exemplo, para criar um pacote de RPM chamado server-config-1.0-1.noarch.rpm, adicione as seguintes informações ao seu projeto:

    Substitua _RPM-NAME pelo nome do pacote RPM a ser criado. Este é também o nome do prefixo no arquivo de alcatrão resultante.

    Substituir RPM-VERSION pela versão do pacote RPM, por exemplo, "1.0.0.0".

    Substitua RPM-RELEASE pela versão do lançamento do pacote RPM, por exemplo, "1

    Substitua RPM-SUMMARY pelo resumo do pacote RPM.

    Substitua REPO-URL pela URL do repositório get para clonar e criar o arquivo a partir dele.

    Substitua GIT-REF pela referência do git para verificar, por exemplo, origin/branch-name, git tag, ou git commit hash.

    Substitua SERVICES pelo caminho para instalar o diretório do repositório git ao instalar o pacote RPM.

    Como conseqüência, o repositório git que você forneceu é clonado, a referência de git especificada é verificada e um pacote RPM é criado para instalar os arquivos em um caminho de destino, por exemplo, /opt/server/. O RPM inclui um resumo com os detalhes do repositório e a referência utilizada para criá-lo. O pacote RPM também está incluído nos metadados de construção da imagem.

    Nota

    Cada vez que uma construção começa, ela clona o repositório. Se você se referir a um repositório com uma grande quantidade de histórico, pode levar algum tempo para clonar e usar uma quantidade significativa de espaço em disco. Além disso, o clone é temporário e é removido assim que o pacote RPM é criado.

3.8. Pacotes instalados

Quando você cria uma imagem do sistema usando o Image Builder, por padrão, o sistema instala um conjunto de pacotes base. A lista base de pacotes são os membros do grupo comps core. Por padrão, o Image Builder usa o grupo core yum.

Tabela 3.1. Pacotes padrão para apoiar a criação do tipo de imagem

Tipo de imagemPacotes padrão

alibaba.ks

kernel, selinux - direcionado para a política de selinux, com nuvens

ami.ks

kernel, selinux - alvo da política de selinux, chrony, cloud-init

ext4-filesystem.ks

policoreutils, selinux-policy-target, kernel

google.ks

kernel, selinux - direcionado à política

live-iso.ks

isomd5sum, kernel, dracut-config-genérico, dracut-genérico, dracut-live, sistema-logos, selinux-policy-target

openstack.ks

kernel, selinux - direcionado à política

disco particionado.ks

kernel, selinux - direcionado à política

qcow2.ks

kernel, selinux - direcionado à política

tar.ks

policoreutils, selinux-policy-target

vhd.ks

kernel, selinux-policy-target, chrony, WALinuxAgent, python3, net-tools, cloud-init, cloud-utils-growpart, gdisk

vmdk.ks

kernel, selinux - alvo da política de selinux, chrony, open-vm-tools

Nota

Ao adicionar componentes adicionais ao seu projeto, você deve certificar-se de que os pacotes nos componentes adicionados não entrem em conflito com nenhum outro componente do pacote, caso contrário o sistema falha em resolver as dependências. Como conseqüência, você não é capaz de criar sua imagem personalizada.

3.9. Serviços habilitados

Quando você configura a imagem personalizada, os serviços habilitados são os serviços padrão para o release RHEL8 que você está executando osbuild-composer, além dos serviços habilitados para tipos de imagem específicos.

Por exemplo, o tipo de imagem .ami permite os serviços sshd, chronyd e cloud-init e, sem estes serviços, a imagem personalizada não arranca.

Tabela 3.2. Serviços habilitados para apoiar a criação do tipo de imagem

Tipo de imagemServiços habilitados

alibaba.ks

sshd,cloud-init

ami.ks

Sem serviço padrão

ext4-filesystem.ks

Sem serviço padrão

google.ks

Sem serviço padrão

live-iso.ks

NetworkManager

openstack.ks

sshd, cloud-init, cloud-init-local, cloud-config, cloud-final

disco particionado.ks

Sem serviço padrão

qcow2.ks

Sem serviço padrão

tar.ks

Sem serviço padrão

vhd.ks

sshd, chronyd, waagent, cloud-init, cloud-init-local, cloud-config, cloud-final

vmdk.ks

sshd, chronyd, vmtoolsd

Nota: Você pode personalizar os serviços a serem habilitados durante a inicialização do sistema. Entretanto, para tipos de imagens com serviços ativados por padrão, a personalização não substitui este recurso.

3.10. Configuração de discos e divisórias usando o Image Builder

O Image Builder não permite que os discos sejam particionados. Os tipos de saída que têm um disco particionado terão uma única partição e, além disso, qualquer partição específica da plataforma que seja necessária para inicializar a imagem do sistema. Por exemplo, o tipo de imagem qcow2 tem uma única partição raiz, e possivelmente uma partição de inicialização específica da plataforma - como PReP para o sistema PPC64 - que a imagem requer para inicializar.

Capítulo 4. Criação de imagens do sistema com a interface do Image Builder web console

O Image Builder é uma ferramenta para criar imagens personalizadas do sistema. Para controlar o Image Builder e criar imagens de seu sistema personalizado, você pode usar a interface do console web. Note que a interface de linha de comando é a alternativa preferida atualmente, pois oferece mais recursos.

4.1. Acesso ao Image Builder GUI no console web RHEL 8

O plugin cockpit-composer para o console web RHEL 8 permite aos usuários gerenciar as plantas do Image Builder e compõe com uma interface gráfica. Note que o método preferido para controlar o Image Builder é, no momento, usar a interface de linha de comando.

Pré-requisitos

  • Você deve ter acesso root ao sistema.

Procedimento

  1. Aberto https://localhost:9090/ em um navegador web no sistema onde o Image Builder está instalado.

    Para mais informações sobre como acessar remotamente o Image Builder, veja Managing systems using the RHEL 8 web console documento.

  2. Acesse o console web com credenciais para uma conta de usuário com privilégios suficientes no sistema.
  3. Para exibir os controles do Image Builder, clique no ícone Image Builder, que se encontra no canto superior esquerdo da janela.

    Abre-se a visão do Image Builder, listando os projetos existentes.

4.2. Criação de um projeto do Image Builder na interface do console web

Para descrever a imagem personalizada do sistema, crie primeiro um plano.

Pré-requisitos

  • Você abriu a interface do Image Builder do console web RHEL 8 em um navegador.

Procedimento

  1. Clique em Create Blueprint, no canto superior direito.

    Um pop-up aparece com campos para o nome e descrição do projeto.

  2. Preencha o nome do plano, sua descrição e, em seguida, clique em Criar.

    A tela muda para o modo de edição do plano.

  3. Adicione componentes que você deseja incluir na imagem do sistema:

    1. À esquerda, digite todo ou parte do nome do componente no campo Available Components e pressione Enter.

      A busca é adicionada à lista de filtros sob o campo de entrada de texto, e a lista de componentes abaixo é reduzida a estes que correspondem à busca.

      Se a lista de componentes for muito longa, acrescente outros termos de busca da mesma forma.

    2. A lista de componentes é paginada. Para ir para outras páginas de resultados, use as setas e o campo de entrada acima da lista de componentes.
    3. Clique no nome do componente que você pretende usar para exibir seus detalhes. O painel direito preenche com detalhes dos componentes, tais como sua versão e dependências.
    4. Selecione a versão que você deseja usar na caixa Component Options, com o menu suspenso Version Release.
    5. Clique em Adicionar na parte superior esquerda.
    6. Se você adicionou um componente por engano, remova-o clicando no botão ... na extrema direita de sua entrada no painel direito, e selecione Remove no menu.
    Nota

    Se você não pretende selecionar uma versão para alguns componentes, você pode pular a tela de detalhes de componentes e seleção de versão clicando nos botões no lado direito da lista de componentes.

  4. Para salvar o projeto, clique em Commit in the top right. Um diálogo com um resumo das mudanças aparece. Clique em Commit.

    Um pequeno pop-up à direita informa sobre o progresso da economia e depois o resultado.

  5. Para sair da tela de edição, clique em Back to Blueprints no canto superior esquerdo.

    Abre-se a visão do Image Builder, listando os projetos existentes.

4.3. Edição de um projeto do Image Builder na interface do console web

Para alterar as especificações de uma imagem de sistema personalizada, edite o plano correspondente.

Pré-requisitos

  • Você abriu a interface do Image Builder do console web RHEL 8 em um navegador.
  • Existe um plano.

Procedimento

  1. Localize o plano que deseja editar digitando seu nome ou parte dele na caixa de busca no canto superior esquerdo, e pressione Enter.

    A busca é adicionada à lista de filtros sob o campo de entrada de texto, e a lista de plantas abaixo é reduzida a estas que correspondem à busca.

    Se a lista de plantas for muito longa, acrescente mais termos de busca da mesma forma.

  2. No lado direito da planta, pressione o botão Edit Blueprint que pertence à planta.

    A visualização muda para a tela de edição do plano.

  3. Remova os componentes indesejados clicando no botão , na extrema direita de sua entrada no painel direito, e selecione Remove no menu.
  4. Modificar a versão dos componentes existentes:

    1. No campo de busca de componentes do projeto, digite o nome do componente ou uma parte dele no campo sob o título Blueprint Components e pressione Enter.

      A busca é adicionada à lista de filtros sob o campo de entrada de texto, e a lista de componentes abaixo é reduzida a estes que correspondem à busca.

      Se a lista de componentes for muito longa, acrescente outros termos de busca da mesma forma.

    2. Clique no botão , na extrema direita da entrada de componentes, e selecione View no menu.

      Uma tela de detalhes de componentes se abre no painel direito.

    3. Selecione a versão desejada no menu suspenso Version Release e clique em Apply Change no canto superior direito.

      A mudança é salva e o painel direito retorna à listagem dos componentes do projeto.

  5. Adicionar novos componentes:

    1. À esquerda, digite o nome do componente ou parte dele no campo sob o título Available Components e pressione Enter.

      A busca é adicionada à lista de filtros sob o campo de entrada de texto, e a lista de componentes abaixo é reduzida a estes que correspondem à busca.

      Se a lista de componentes for muito longa, acrescente outros termos de busca da mesma forma.

    2. A lista de componentes é paginada. Para ir para outras páginas de resultados, use as setas e o campo de entrada acima da lista de componentes.
    3. Clique no nome do componente que você pretende usar para exibir seus detalhes. O painel direito preenche com detalhes dos componentes, tais como sua versão e dependências.
    4. Selecione a versão que você deseja usar na caixa Component Options, com o menu suspenso Version Release.
    5. Clique em Adicionar na parte superior direita.
    6. Se você adicionou um componente por engano, remova-o clicando no botão , na extrema direita de sua entrada no painel direito, e selecione Remove no menu.

      Nota

      Se você não pretende selecionar uma versão para alguns componentes, você pode pular a tela de detalhes de componentes e seleção de versão clicando nos botões no lado direito da lista de componentes.

  6. Comprometa-se com uma nova versão do plano com suas mudanças:

    1. Clique no botão Commit no canto superior direito.

      Uma janela pop-up com um resumo de suas mudanças aparece.

    2. Reveja suas mudanças e confirme-as clicando em Commit.

      Um pequeno pop-up à direita lhe informa sobre o progresso da economia e os resultados. Uma nova versão do plano é criada.

    3. Na parte superior esquerda, clique em Back to Blueprints para sair da tela de edição.

      Abre-se a visão do Image Builder, listando os projetos existentes.

4.4. Adicionando usuários e grupos a um projeto do Image Builder na interface do console web

Atualmente não é possível acrescentar customizações como usuários e grupos aos projetos na interface do console web. Para contornar esta limitação, use o Terminal no console web para usar o fluxo de trabalho da interface de linha de comando (CLI).

Pré-requisitos

  • Um plano deve existir.
  • Um editor de texto CLI, como vim, nano, ou emacs deve ser instalado. Para instalá-los:

    # instalação do yum editor-name

Procedimento

  1. Find out the name of the blueprint: Open the Image Builder (Image builder) tab on the left in the RHEL 8 web console to see the name of the blueprint.
  2. Navegue para o CLI no console web: Abra a aba de administração do sistema à esquerda, depois selecione o último item Terminal da lista da esquerda.
  3. Entrar no modo super-usuário (raiz):

    $ sudo bash

    Forneça suas credenciais quando solicitado. Observe que o terminal não reutiliza suas credenciais que você inseriu ao efetuar login no console web.

    Uma nova casca com privilégios de raiz começa em seu diretório pessoal.

  4. Exportar o projeto para um arquivo:

    # plantas compositor-cli salvar BLUEPRINT-NAME
  5. Edite o arquivo BLUEPRINT-NAME.toml com um editor de texto CLI de sua escolha e adicione os usuários e grupos.

    Importante

    O console web RHEL 8 não tem nenhum recurso incorporado para editar arquivos de texto no sistema, portanto, o uso de um editor de texto CLI é necessário para esta etapa.

    1. Para cada usuário a ser adicionado, adicione este bloco ao arquivo:

      [[customizations.user]]
      name = "USER-NAME"
      description = "USER-DESCRIPTION"
      password = "PASSWORD-HASH"
      key = "ssh-rsa (...) key-name"
      home = "/home/USER-NAME/"
      shell = "/usr/bin/bash"
      groups = ["users", "wheel"]
      uid = NUMBER
      gid = NUMBER

      Substitua PASSWORD-HASH pelo hash de senha atual. Para gerar o hash, use um comando como este:

      $ python3 -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw===getpass.getpass("Confirmar: ")) else exit())

      Substitua ssh-rsa (…​) key-name pela chave pública atual.

      Substituir os outros titulares de lugar por valores adequados.

      Deixe de fora qualquer uma das linhas conforme necessário, apenas o nome do usuário é necessário.

    2. Para cada grupo de usuários a ser adicionado, adicione este bloco ao arquivo:

      [[customizations.group]]
      name = "GROUP-NAME"
      gid = NUMBER
    3. Aumentar o número da versão.
    4. Salve o arquivo e feche o editor.
  6. Importar a planta de volta para o Image Builder:

    # composer-cli blueprints push BLUEPRINT-NAME.toml

    Observe que você deve fornecer o nome do arquivo incluindo a extensão .toml, enquanto em outros comandos você usa apenas o nome do plano.

  7. Para verificar se o conteúdo carregado no Image Builder corresponde às suas edições, liste o conteúdo do plano:

    # os projetos compositor-cli mostram BLUEPRINT-NAME

    Verifique se a versão corresponde ao que você coloca no arquivo e se suas personalizações estão presentes.

    Importante

    O plugin Image Builder para o console web RHEL 8 não mostra nenhuma informação que possa ser usada para verificar se as mudanças foram aplicadas, a menos que você também tenha editado os pacotes incluídos no projeto.

  8. Saia da casca privilegiada:

    # saída
  9. Abra o Image Builder (Image builder) à esquerda e atualize a página, em todos os navegadores e em todas as abas onde foi aberta.

    Isto evita que o estado em cache na página carregada reverta acidentalmente suas mudanças.

4.5. Criação de uma imagem do sistema com o Image Builder na interface do console web

As seguintes etapas abaixo descrevem a criação de uma imagem do sistema.

Pré-requisitos

  • Você abriu a interface do Image Builder do console web RHEL 8 em um navegador.
  • Existe um plano.

Procedimento

  1. Localize o projeto que você deseja construir uma imagem digitando seu nome ou uma parte dele na caixa de busca no canto superior esquerdo, e pressione Enter.

    A busca é adicionada à lista de filtros sob o campo de entrada de texto, e a lista de plantas abaixo é reduzida a estas que correspondem à busca.

    Se a lista de plantas for muito longa, acrescente mais termos de busca da mesma forma.

  2. No lado direito da planta, pressione o botão Criar imagem que pertence à planta.

    Aparece uma janela pop-up.

  3. Selecione o tipo de imagem e pressione Criar.

    Um pequeno pop-up na parte superior direita informa que a criação da imagem foi adicionada à fila.

  4. Clique no nome do plano.

    Abre-se uma tela com detalhes do plano.

  5. Clique na guia Imagens para mudar para ela. A imagem que está sendo criada é listada com o status In Progress.

    Nota

    A criação de imagens leva um tempo maior, medido em minutos. Não há indicação de progresso enquanto a imagem é criada.

    Para abortar a criação de imagens, pressione seu botão Stop à direita.

  6. Assim que a imagem for criada com sucesso, o botão Stop é substituído por um botão Download. Clique neste botão para baixar a imagem para seu sistema.

4.6. Adicionando uma fonte a um plano

As fontes definidas no Image Builder fornecem o conteúdo que você pode adicionar aos projetos. Estas fontes são globais e, portanto, disponíveis para todos os projetos. As fontes do sistema são repositórios que são configurados localmente em seu computador e não podem ser removidos do Image Builder. Você pode adicionar fontes personalizadas adicionais e, assim, poder acessar outros conteúdos que não as fontes do Sistema disponíveis em seu sistema.

Os passos seguintes descrevem como adicionar uma Fonte ao seu sistema local.

Pré-requisitos

  • Você abriu a interface do Image Builder do console web RHEL 8 em um navegador.

Procedimento

  1. Clique no botão Manage Sources, no canto superior direito.

    construtor de imagens gerenciar fonte

    Uma janela pop-up aparece com as fontes disponíveis, seus nomes e descrições.

    fontes disponíveis para o construtor de imagens

  2. No lado direito da janela pop-up, clique no botão Adicionar fonte.
  3. Adicione o desejado Source name, o Source path, e o Source Type. O campo Security é opcional.

    opções de fontes construtor de imagens

  4. Clique no botão Adicionar fonte. A tela mostra a janela de fontes disponíveis e lista a fonte que você adicionou.

Como resultado, a nova fonte do Sistema está disponível e pronta para ser usada ou editada.

4.7. Criação de uma conta de usuário para um plano

As imagens criadas pelo Image Builder têm a conta raiz bloqueada e nenhuma outra conta incluída. Tal configuração é fornecida a fim de garantir que você não possa acidentalmente construir e implantar uma imagem sem uma senha. O Image Builder permite que você crie uma conta de usuário com senha para um plano, de modo que você possa fazer o login na imagem criada a partir do plano.

Pré-requisitos

  • Você abriu a interface do Image Builder do console web RHEL 8 em um navegador.
  • Você tem um plano existente.

Procedimento

  1. Localize o plano para o qual você deseja criar uma conta de usuário digitando seu nome ou uma parte dele na caixa de busca no canto superior esquerdo, e pressione Enter.

    A busca é adicionada à lista de filtros sob o campo de entrada de texto, e a lista de plantas abaixo é reduzida àquelas que correspondem à busca.

  2. Clique sobre o nome do projeto para exibir os detalhes do projeto.

    image builder create user account
  3. Clique em Criar conta de usuário.

    Isto abrirá uma janela com campos para criação de conta de usuário.

    image builder creating user account 2
  4. Preencha os detalhes. Observe que ao inserir o nome, o campo User name autocompleta, sugerindo um nome de usuário.
  5. Depois de inserir todos os detalhes desejados, clique em Criar.
  6. A conta de usuário criada aparece mostrando todas as informações que você inseriu.

    image builder user account created
  7. Para criar mais contas de usuário para o projeto, repita o processo.

4.8. Criação de uma conta de usuário com chave SSH

As imagens criadas pelo Image Builder têm a conta raiz bloqueada e nenhuma outra conta incluída. Tal configuração é fornecida a fim de garantir que as imagens sejam seguras, não tendo uma senha padrão. O Image Builder permite criar uma conta de usuário com chave SSH para um plano, para que você possa autenticar a imagem que criou a partir do plano. Para fazer isso, primeiro, crie um plano. Em seguida, você criará uma conta de usuário com uma senha e uma chave SSH. O exemplo a seguir mostra como criar um usuário administrador do servidor com uma chave SSH configurada.

Pré-requisitos

  • Você criou uma chave SSH que será emparelhada com o usuário criado mais tarde no processo.
  • Você abriu a interface do Image Builder do console web RHEL 8 em um navegador.
  • Você tem um plano existente

Procedimento

  1. Localize o plano para o qual você deseja criar uma conta de usuário digitando seu nome ou uma parte dele na caixa de busca no canto superior esquerdo, e pressione Enter.

    A busca é adicionada à lista de filtros sob o campo de entrada de texto, e a lista de plantas abaixo é reduzida àquelas que correspondem à busca.

  2. Clique sobre o nome do projeto para exibir os detalhes do projeto.

    image builder create user account
  3. Clique em Criar conta de usuário.

    Isto abrirá uma janela com campos para criação de conta de usuário

    image builder creating user account 2
  4. Preencha os detalhes. Observe que ao inserir o nome, o campo User name autocompleta, sugerindo um nome de usuário.

    Se você quiser fornecer direitos de administrador à conta de usuário que está criando, verifique o campo Role.

    Cole o conteúdo de seu arquivo público chave SSH.

  5. Depois de inserir todos os detalhes desejados, clique em Criar.
  6. A nova conta de usuário aparecerá na lista de usuários, mostrando todas as informações que você inseriu.

    image builder user account created
  7. Se você quiser criar mais contas de usuário para o projeto, repita o processo.

Recursos adicionais

Capítulo 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.

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

5.2. Carregamento de uma imagem AMI para AWS

Esta seção descreve como fazer o upload de uma imagem AMI para AWS.

Pré-requisitos

  • Seu sistema deve ser configurado para o carregamento de imagens AWS.
  • Você deve ter uma imagem AWS criada pelo Image Builder. Use o tipo de saída ami no CLI ou Amazon Machine Image Disk (.ami) na GUI ao criar a imagem.

Procedimento

  1. Empurrar a imagem para S3:

    $ AMI=8db1b463-91ee-4fd9-8065-938924398428-disk.ami
    $ aws s3 cp $AMI s3://$BUCKET
    Completed 24.2 MiB/4.4 GiB (2.5 MiB/s) with 1 file(s) remaining
    ...
  2. Após o upload para S3 terminar, importe a imagem como um instantâneo para o EC2:

    $ printf '{ "Description": "my-image", "Format": "raw", "UserBucket": { "S3Bucket": "%s", "S3Key": "%s" } }' $BUCKET $AMI > containers.json
    $ aws ec2 import-snapshot --disk-container file://containers.json

    Substituir my-image pelo nome da imagem.

    Para acompanhar o progresso da importação, execute:

    $ aws ec2 descrever-importar-importar-snapotar-tarefas --filtros Nome=tarefa-estado,Valores=ativo
  3. Crie uma imagem a partir do instantâneo carregado selecionando o instantâneo no console EC2, clicando com o botão direito sobre ele e selecionando Create Image:

    compositor aws ec2 select snapshot

  4. Selecione o Virtualization type of Hardware-assisted virtualization na imagem que você cria:

    compositor aws ec2 criar imagem

  5. Agora você pode executar uma instância usando o mecanismo que quiser (CLI ou AWS Console) a partir do instantâneo. Use sua chave privada via SSH para acessar a instância EC2 resultante. Acesse como ec2-user.

5.3. Empurrando imagens para AWS Cloud AMI

A capacidade de empurrar a imagem de saída que você cria para AWS Cloud AMI está disponível desta vez. Isto descreve os passos para empurrar .ami imagens que você cria usando o Image Builder para o provedor de serviços Amazon AWS Cloud.

Pré-requisitos

  • Você deve ter acesso ao sistema em root ou wheel.
  • Você abriu a interface do Image Builder do console web RHEL 8 em um navegador.
  • Você deve ter um ID de chave de acesso configurado no gerenciador de conta AWS IAM.
  • Você deve ter um balde S3 gravável preparado.

Procedimento

  1. Clique em Create blueprint para criar um plano. Veja Criando um plano de construção de imagem na interface do console web.
  2. Selecione os componentes e embalagens que você deseja como parte da imagem que está criando.
  3. Clique em Comprometa-se a fazer as mudanças que você fez no plano.

    Um pequeno pop-up no lado direito superior informa sobre o progresso da economia e, em seguida, o resultado das mudanças que você cometeu.

  4. Clique no link blueprint name no banner à esquerda.
  5. Selecione a aba Imagens.
  6. Clique em Create Image (Criar imagem) para criar sua imagem personalizada.

    Abre-se uma janela pop-up.

    1. A partir da lista do menu suspenso "Type", selecione a imagem "Amazon Machine Image Disk (.ami)}".
    2. Marque a caixa de seleção "Upload to AWS" para enviar sua imagem para o AWS Cloud e clique em Next.
    3. Para autenticar seu acesso ao AWS, digite sua "AWS access key ID" e "AWS secret access key" nos campos correspondentes. Clique em Próximo.

      Nota

      Você pode visualizar sua chave de acesso secreta AWS somente quando você criar uma nova ID de chave de acesso. Se você não souber sua chave secreta, gere uma nova ID de chave de acesso.

    4. Digite o nome da imagem no campo "Nome da imagem", digite o nome do balde Amazon no campo "Nome do balde Amazon S3" e digite o campo "AWS region" para o balde ao qual você vai adicionar sua imagem personalizada. Clique em Next.
    5. Revise as informações que você forneceu e, uma vez satisfeito, clique em Finish.

      Opcionalmente, você pode clicar em Voltar para modificar qualquer detalhe incorreto.

      Nota

      Você deve ter as configurações corretas do IAM para o balde que você vai enviar sua imagem personalizada. Estamos usando o IAM Importação e Exportação, portanto você tem que configurar a policy para seu balde antes de poder enviar imagens para ele. Para mais informações, consulte Permissões Necessárias para Usuários do IAM.

  7. Um pequeno pop-up no lado direito superior informa sobre o progresso da economia. Ele também informa que a criação da imagem foi iniciada, o progresso desta criação de imagem e o subseqüente upload para a nuvem AWS.

    Uma vez concluído o processo, você pode ver o status "Image build complete".

  8. Clique em Service→EC2 no menu e escolha a região correta no console AWS. A imagem deve ter o status "Disponível", para indicar que está carregada.
  9. No painel de controle, selecione sua imagem e clique em Launch.
  10. Uma nova janela se abre. Escolha um tipo de instância de acordo com os recursos que você precisa para lançar sua imagem. Clique em Revisar e Lançar.
  11. Revise os detalhes do lançamento de sua instância. Você pode editar cada seção se precisar fazer alguma mudança. Clique em Lançar
  12. Antes de lançar a instância, você deve selecionar uma chave pública para acessá-la.

    Você pode usar o par de chaves que já possui ou pode criar um novo par de chaves. Alternativamente, você pode usar Image Builder para adicionar um usuário à imagem com uma chave pública predefinida. Veja Criar uma conta de usuário com chave SSH para mais detalhes.

    Siga os próximos passos para criar um novo par de chaves no EC2 e anexá-lo à nova instância.

    1. A partir da lista do menu suspenso, selecione "Create a new key pair".
    2. Digite o nome para o novo par de chaves. Ele gera um novo par de chaves.
    3. Clique em "Download Key Pair" para salvar o novo par de chaves em seu sistema local.
  13. Em seguida, você pode clicar em Launch Instance para lançar sua instância.

    Você pode verificar o status da instância, ela mostra como "Initializing".

  14. Uma vez que o status da instância é "running", o botão Connect torna-se disponível.
  15. Clique em Conectar. Uma janela popup aparece com instruções sobre como conectar usando SSH.

    1. Selecione o método de conexão preferido para "A standalone SSH client" e abra um terminal.
    2. No local onde você armazena sua chave privada, certifique-se de que sua chave esteja visível publicamente para que o SSH funcione. Para fazer isso, execute o comando:

      $ chmod 400 <seu-nome.pem>_
    3. Conecte-se à sua instância usando seu DNS Público:

      $ ssh -i {\i}<_seu-instância-nome.pem_"> ec2-user@<_seu-instância-IP-address_>
    4. Digite "sim" para confirmar que você deseja continuar se conectando.

      Como resultado, você está conectado a sua instância usando SSH.

Etapas de verificação

  1. Verifique se você é capaz de realizar alguma ação enquanto estiver conectado a sua instância usando SSH.

5.4. Preparação para o carregamento de imagens Azure VHD

Isto descreve os passos para carregar uma imagem VHD para o Azure.

Pré-requisitos

  • Você deve ter um grupo de recursos Azure utilizável e uma conta de armazenamento.

Procedimento

  1. Instalar python2:

    # yum instalar python2
    Nota

    o pacotepython2 deve ser instalado porque como o AZ CLI depende especificamente do python 2.7

  2. Importar a chave do repositório Microsoft:

    # rpm --importar https://packages.microsoft.com/keys/microsoft.asc
  3. Criar um repositório local de informações azure-cli:

    # sh -c 'echo -e"[azure-cli]{{\i}name=Azure CLI=https://packages.microsoft.com/yumrepos/azure-cli}nbaseurl=https://packages.microsoft.com/keys/microsoft.asc}nenabled=1=ngpgcheck=1=ngpgkey=https://packages.microsoft.com/keys/microsoft.asc}" > /etc/yum.repos.d/azure-cli.repo'
  4. Instale a CLI Azure:

    # yumdownloader azure-cli
    # rpm -ivh --nodeps azure-cli-2.0.64-1.el7.x86_64.rpm
    Nota

    A versão baixada do pacote Azure CLI pode variar, dependendo da versão atual baixada.

  5. Dirija a CLI Azure:

    $ az login

    O terminal mostra a mensagem "Nota, lançamos um navegador para que você faça o login". Para experiência antiga com código de dispositivo, use o "az login --use-device-code" e abra um navegador onde você pode fazer o login.

    Nota

    Se você estiver executando uma sessão remota (SSH), o link não será aberto no navegador. Neste caso, você pode usar o link fornecido e, assim, poder fazer o login e autenticar sua sessão remota. Para fazer login, use um navegador para abrir a página https://microsoft.com/devicelogin e digite o código XXXXXXXXX para autenticar.

  6. Liste as chaves para a conta de armazenamento em Azure:

    $ GROUP=resource-group-name
    $ ACCOUNT=storage-account-name
    $ az storage account keys list --resource-group $GROUP --account-name $ACCOUNT

    Substituir resource-group-name pelo nome do grupo de recursos Azure e storage-account-name pelo nome da conta de armazenamento Azure.

    Nota

    Você pode listar os recursos disponíveis usando o comando:

    Lista de recursos az
  7. Anote o valor key1 na saída do comando anterior, e atribua-o a uma variável de ambiente:

    $ KEY1=value
  8. Criar um recipiente de armazenagem:

    $ CONTAINER=storage-account-name
    $ az storage container create --account-name $ACCOUNT \
    --account-key $KEY1 --name $CONTAINER

    Substituir storage-account-name pelo nome da conta de armazenamento.

Recursos adicionais

5.5. Carregamento de imagens VHD para o Azure

Isto descreve os passos para carregar uma imagem VHD para o Azure.

Pré-requisitos

  • Seu sistema deve ser configurado para o carregamento de imagens Azure VHD.
  • Você deve ter uma imagem Azure VHD criada pela Image Builder. Use o tipo de saída vhd no CLI ou Azure Disk Image (.vhd) na GUI ao criar a imagem.

Procedimento

  1. Empurre a imagem para Azure e crie uma instância a partir dela:

    $ VHD=25ccb8dd-3872-477f-9e3d-c2970cd4bbaf-disk.vhd
    $ az storage blob upload --account-name $ACCOUNT --container-name $CONTAINER --file $VHD --name $VHD --type page
    ...
  2. Quando o upload para o BLOB Azure estiver completo, crie uma imagem Azure a partir dele:

    $ az image create --resource-group $GROUP --name $VHD --os-type linux --location eastus --source https://$ACCOUNT.blob.core.windows.net/$CONTAINER/$VHD
     - Running ...
  3. Criar uma instância ou com o portal Azure, ou um comando semelhante ao seguinte:

    $ az vm create --resource-group $GROUP --location eastus --name $VHD --image $VHD --admin-username azure-user --generate-ssh-keys
     - Running ...
  4. Use sua chave privada via SSH para acessar a instância resultante. Acesse como azure-user.

5.6. Carregamento de imagens VMDK para o vSphere

O Image Builder pode gerar imagens adequadas para carregar em um sistema VMware ESXi ou vSphere. Isto descreve os passos para carregar uma imagem VMDK para o VMware vSphere.

Nota

Como as implantações de VMWare normalmente não têm a nuvem configurada para injetar credenciais de usuário em máquinas virtuais, devemos realizar essa tarefa nós mesmos no projeto.

Pré-requisitos

  • Você deve ter uma imagem VMDK criada pelo Image Builder. Use o tipo de saída vmdk no CLI ou VMware Virtual Machine Disk (.vmdk) na GUI ao criar a imagem.

Procedimento

  1. Carregue a imagem no vSphere via HTTP. Clique em Upload Files no vCenter:

    imagem do compositor vmware upload

  2. Quando você criar uma VM, no Device Configuration, exclua o padrão New Hard Disk e use o menu suspenso para selecionar uma imagem de disco Existing Hard Disk:

    compositor vmware disco existente

  3. Certifique-se de usar um dispositivo IDE como o Virtual Device Node para o disco que você criar. O valor padrão SCSI resulta em uma máquina virtual não inicializável.

    compositor vmware ideal existente

5.7. Empurrando imagens VHD para a nuvem Azure

A capacidade de empurrar a imagem de saída que você cria para o Azure Blob Storage está disponível. .vhd Esta seção descreve os passos para empurrar as imagens que você cria usando o Image Builder para o fornecedor de serviços Azure Cloud.

Pré-requisitos

  • Você deve ter acesso root ao sistema.
  • Você abriu a interface do Image Builder do console web RHEL 8 em um navegador.
  • Você deve ter uma conta de armazenamento criada.
  • Você deve ter um Blob Storage gravável preparado.

Procedimento

  1. Clique em Create blueprint para criar um plano. Veja mais em Criar um plano de construção de imagem na interface do console web.
  2. Selecione os componentes e embalagens que você deseja como parte da imagem que está criando.
  3. Clique em Comprometa-se a fazer as mudanças que você fez no plano.

    Um pequeno pop-up no lado superior direito informa sobre o progresso da economia e, em seguida, o resultado das mudanças que você cometeu.

  4. Clique no link blueprint name no banner à esquerda.
  5. Selecione a aba Imagens.
  6. Clique em Create Image (Criar imagem) para criar sua imagem personalizada.

    Abre-se uma janela pop-up.

    1. A partir da lista do menu suspenso "Type", selecione a imagem Azure Disk Image (.vhd).
    2. Marque a caixa de seleção "Upload to Azure" para enviar sua imagem para a Nuvem Azure e clique em Next.
    3. Para autenticar seu acesso ao Azure, digite sua "Conta de armazenamento" e "Chave de acesso de armazenamento" nos campos correspondentes. Clique em Next.

      Você pode encontrar os detalhes de sua conta de armazenamento na lista do menu principal Settings→Access.

    4. Digite um "Image name" para ser usado para o arquivo de imagem que será carregado e o Blob "Storage container" no qual o arquivo de imagem para o qual você quer empurrar a imagem. Clique em Next.
    5. Revise as informações que você forneceu e, uma vez satisfeito, clique em Finish.

      Opcionalmente, você pode clicar em Voltar para modificar qualquer detalhe incorreto.

  7. Um pequeno pop-up no lado superior direito exibe quando o processo de criação da imagem começa com a mensagem: "A criação da imagem foi adicionada à fila".

    Uma vez concluído o processo de criação da imagem, clique no plano a partir do qual você criou uma imagem. Você pode ver o status "Image build complete" para a imagem que você criou dentro da aba Images.

  8. Para acessar a imagem que você empurrou para Azure Cloud, acesse Azure Portal.
  9. Na barra de busca, digite Images e selecione a primeira entrada em Services. Você será redirecionado para o endereço Image dashboard.
  10. Clique em Adicionar. Você será redirecionado para o painel Create an Image.

    Insira os detalhes abaixo:

    1. Name: Escolha um nome para sua nova imagem.
    2. Resource Group: Selecione um resource group.
    3. Location: Selecione o location que corresponde às regiões atribuídas à sua conta de armazenamento. Caso contrário, você não poderá selecionar um blob.
    4. OS Type: Defina o tipo de SO para Linux.
    5. VM Generation: Mantenha a geração VM configurada em Gen 1.
    6. Storage Blob: Clique Browse à direita de Storage blob input. Use o diálogo para encontrar a imagem que você carregou anteriormente.

      Manter os campos restantes como na escolha por padrão.

  11. Clique em Criar para criar a imagem. Uma vez criada a imagem, você pode ver a mensagem "Successfully created image" no canto superior direito.
  12. Clique em Atualizar para ver sua nova imagem e abrir sua imagem recém-criada.
  13. Clique em Criar VM. Você será redirecionado para o painel Create a virtual machine.
  14. Na guia Basic, em Project Details, your *Subscription e Resource Group já estão pré-definidos.

    Se você deseja criar um novo grupo de recursos

    1. Clique em Criar novo.

      Um pop-up solicita que você crie o contêiner Resource Group Name.

    2. Insira um nome e clique em OK.

      Se você quiser manter o Resource Group que já estão pré-definidos.

  15. Em Instance Details, insira:

    1. Virtual machine name
    2. Region
    3. Image: A imagem que você criou é pré-selecionada por padrão.
    4. Size: Escolha um tamanho de VM que melhor se adapte às suas necessidades.

      Manter os campos restantes como na escolha por padrão.

  16. Em Administrator account, digite os detalhes abaixo:

    1. Username: o nome do administrador da conta.
    2. SSH public key source: no menu suspenso, selecione Generate new key pair.

      Você pode usar o par de chaves que já possui ou pode criar um novo par de chaves. Alternativamente, você pode usar Image Builder para adicionar um usuário à imagem com uma chave pública predefinida. Veja Criar uma conta de usuário com chave SSH para mais detalhes.

    3. Key pair name: inserir um nome para o par de chaves.
  17. Em Inbound port rules, selecione:

    1. Public inbound ports: Allow selected ports.
    2. Select inbound ports: Use o conjunto padrão SSH (22).
  18. Clique Review Create. Você é redirecionado para a guia Review create e recebe uma confirmação de que a validação foi aprovada.
  19. Revise os detalhes e clique em Criar.

    Opcionalmente, você pode clicar em Previous (Anterior) para corrigir as opções anteriores selecionadas.

  20. Uma janela pop-up generates new key pair se abre. Clique Download private key and create resources.

    Salvar o arquivo chave como "yourKey.pem

  21. Uma vez que a implantação esteja completa, clique em Ir para recurso.
  22. Você é redirecionado para uma nova janela com seus detalhes VM. Selecione o endereço IP público no lado superior direito da página e copie-o para sua área de transferência.

Agora, para criar uma conexão SSH com a VM para conectar à Máquina Virtual.

  1. Abra um terminal.
  2. Em sua solicitação, abra uma conexão SSH à sua máquina virtual. Substitua o endereço IP pelo de sua VM, e substitua o caminho para o .pem pelo caminho para onde o arquivo chave foi baixado.

    # ssh -i ./Downloads/yourKey.pem azureuser@10.111.12.123
  3. Você é obrigado a confirmar se deseja continuar a se conectar. Digite sim para continuar.

Como resultado, a imagem de saída que você empurrou para o Azure Storage Blob está pronta para ser provisionada.

5.8. Upload da imagem QCOW2 para o OpenStack

O Image Builder pode gerar imagens adequadas para o upload para o OpenStack e para as instâncias iniciais lá. Isto descreve os passos para carregar uma imagem QCOW2 para o OpenStack.

Pré-requisitos

  • Você deve ter uma imagem específica do OpenStack criada pelo Image Builder. Use o tipo de saída openstack no CLI ou OpenStack Image (.qcow2) na GUI ao criar a imagem.

    Atenção

    O Image Builder também oferece um formato genérico de saída do tipo de imagem QCOW2 como qcow2 ou QEMU QCOW2 Image (.qcow2). Não confunda com o tipo de imagem OpenStack que também está no formato QCOW2, mas contém outras mudanças específicas do OpenStack.

Procedimento

  1. Carregue a imagem no OpenStack e inicie uma instância a partir dele. Use a interface Images para fazer isso:

    imagem do compositor para upload do opentack

  2. Comece uma instância com essa imagem:

    exemplo de partida do compositor

  3. Você pode executar a instância usando qualquer mecanismo (CLI ou OpenStack web UI) a partir do instantâneo. Use sua chave privada via SSH para acessar a instância resultante. Acesse como cloud-user.

5.9. Preparação para o carregamento de imagens para Alibaba

Esta seção descreve os passos para verificar imagens personalizadas que você pode implantar no Alibaba Cloud. As imagens precisarão de uma configuração específica para iniciar com sucesso, pois o Alibaba Cloud solicita as imagens personalizadas para atender a certos requisitos antes de utilizá-lo. Para isto, é recomendável que você utilize o Alibaba image_check tool.

Nota

A verificação da imagem personalizada é uma tarefa opcional. O Image Builder gera imagens que estão em conformidade com as exigências da Alibaba.

Pré-requisitos

  • Você deve ter uma imagem Alibaba criada pela Image Builder.

Procedimento

  1. Conecte-se ao sistema que contém a imagem que você deseja verificar através do Alibaba image_check tool.
  2. Baixe o site image_check tool:

    $ curl -O http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/73848/cn_zh/1557459863884/image_check
  3. Alterar a permissão de arquivo da ferramenta de conformidade da imagem:

    # chmod x image_check
  4. Execute o comando para iniciar a verificação da ferramenta de conformidade da imagem:

    # ./image_check

    A ferramenta verifica a configuração do sistema e gera um relatório que é exibido em sua tela. A ferramenta image_check salva este relatório na mesma pasta onde a ferramenta de conformidade da imagem está sendo executada.

  5. Se qualquer um dos Detection Items falhar, siga as instruções para corrigi-lo. Para mais informações, consulte o link: Seção de itens de detecção.

5.10. Carregamento de imagens para Alibaba

Esta seção descreve como fazer o upload de uma imagem Alibaba para o Serviço de Armazenamento de Objetos (OSS).

Pré-requisitos

  • Seu sistema está configurado para o carregamento de imagens Alibaba.
  • Você deve ter uma imagem Alibaba criada pela Image Builder. Use o tipo de saída ami no RHEL 7 ou Alibaba no RHEL 8 ao criar a imagem.
  • Você tem um balde. Veja Criando um balde.
  • Você tem uma conta ativa no Alibaba.
  • Você ativou o OSS.

Procedimento

  1. Acesse o console OSS.
  2. No menu do lado esquerdo do balde, selecione o balde para o qual você deseja carregar uma imagem.
  3. No menu superior direito, clique na guia Arquivos.
  4. Clique em Upload. Uma janela de diálogo se abre no lado direito. Escolha as seguintes informações:

    • Upload To: Escolha carregar o arquivo para o diretório Current ou para um diretório Specified.
    • File ACL: Escolha o tipo de permissão do arquivo carregado.
  5. Clique em Upload.
  6. Escolha a imagem que você deseja carregar.
  7. Clique em Abrir.

Como resultado, a imagem personalizada é carregada no OSS Console.

5.11. Importação de imagens para Alibaba

Esta seção descreve como importar uma imagem Alibaba para a Elastic Cloud Console (ECS).

Pré-requisitos

  • Você carregou a imagem para o Serviço de Armazenamento de Objetos (OSS).

Procedimento

  1. Acesse o console do ECS.

    1. No menu do lado esquerdo, clique em Imagens.
    2. No lado superior direito, clique em Importar imagem. Abre-se uma janela de diálogo.
    3. Confirme que você configurou a região correta onde a imagem está localizada. Digite as seguintes informações:

      1. OSS Object Address: Veja como obter o endereço do objeto OSS.
      2. Image Name:
      3. Operating System:
      4. System Disk Size:
      5. System Architecture:
      6. Platform: Chapéu Vermelho
    4. Opcionalmente, forneça os seguintes detalhes:

      1. Image Format: qcow2 ou ami, dependendo do formato da imagem carregada.
      2. Image Description:
      3. Add Images of Data Disks:

        O endereço pode ser determinado no console de gerenciamento OSS após selecionar o balde desejado no menu da esquerda, selecionar a seção Arquivos e depois clicar no link Detalhes no lado direito para a imagem apropriada. Uma janela aparecerá no lado direito da tela, mostrando os detalhes da imagem. O endereço do objeto OSS está na caixa URL.

  2. Clique OK.

    Nota

    O tempo de processo de importação pode variar de acordo com o tamanho da imagem.

Como resultado, a imagem personalizada é importada para o ECS Console. Você pode criar uma instância a partir da imagem personalizada.

5.12. Criar uma instância de uma imagem personalizada usando Alibaba

Você pode criar instâncias da imagem personalizada usando o Console ECS Alibaba.

Pré-requisitos

  • Você ativou o OSS e fez o upload de sua imagem personalizada.
  • Você importou com sucesso sua imagem para o ECS Console.

Procedimento

  1. Acesse o console do ECS.
  2. No menu do lado esquerdo, escolha Instances.
  3. No canto superior, clique em Create Instance. Você é redirecionado para uma nova janela.
  4. Preencha todas as informações necessárias. Consulte Criando uma instância usando o assistente para obter mais detalhes.
  5. Clique em Create Instance e confirme o pedido.

    Nota

    Você pode ver a opção Create Order ao invés de Create Instace, dependendo de sua assinatura.

Como resultado, você tem uma instância ativa pronta para a implantação.