Red Hat Training
A Red Hat training course is available for RHEL 8
6.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.
Essas personalizações não são atualmente suportadas dentro da interface gráfica de usuário do cockpit que acompanha o projeto.
Procedimento
Defina o nome da hostname da imagem:
[customizations] hostname = "baseimage"
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
ImportantePara 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.
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.
Definir uma chave ssh de usuário existente:
[[customizations.sshkey]] user = "root" key = "PUBLIC-SSH-KEY"
NotaEsta 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.
Anexar uma opção de parâmetro de inicialização do kernel aos valores padrão:
[customizations.kernel] append = "KERNEL-OPTION"
Defina o nome do hospedeiro da imagem:
[customizations] hostname = "BASE-IMAGE"
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.
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.
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.
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.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.
NotaSe você não quiser personalizar os serviços de firewall, omitir as seções
[customizations.firewall]
e[customizations.firewall.services]
do projeto.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.
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
, ougit 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.NotaCada 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.