|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Como adicionar RPMs de terceiros no momento da instalação
Este exemplo cobre o caso em que RPMs extras (por exemplo, drivers de hardware específicos) são incluídos na imagem ISO e, durante a instalação, são instalados sobre a imagem do sistema operacional.
Para esse caso de uso, os seguintes arquivos são necessários:
-
RPMs adicionais a serem instalados
-
arquivo de cloud-config adicional definindo ganchos para copiar e instalar binários como ganchos de instalação
Podemos lidar com tudo em uma única seção SeedImage.spec.cloud-config, assumindo que o RPM adicional está disponível para download de um servidor remoto no momento da instalação.
Considere os seguintes dados de cloud-config que poderiam ser usados como o conteúdo da seção cloud-config em um recurso SeedImage.
name: "Install extra drivers"
stages:
before-install:
# Preload data to the persistent storage
# During installation persistent partition is mounted at /run/elemental/persistent
- downloads:
- path: /tmp/some_package.rpm
url: "<REMOTE_PACKAGE_URL>"
permissions: 0777
- commands:
- mkdir -o /run/elemental/persistent/extra-pkgs
- cp -p /tmp/some_package.rpm /run/elemental/persistent/extra-pkgs
after-install-chroot:
# Install the package at install time
- commands:
- rpm -iv /run/elemental/extra-pkgs/some_package.rpm
# Include to the install system analog upgrade and reset hooks
- files:
- path: /oem/extra-pkg.yaml
permissions: 0664
content: |
name: "Install extra drivers"
stages:
after-upgrade-chroot:
# Install the package after upgrading to a new image
- commands:
- rpm -iv /run/elemental/extra-pkgs/some_package.rpm
after-reset-chroot:
# Install the package on reset
- commands:
- rpm -iv /run/elemental/extra-pkgs/some_package.rpm
Observe que os ganchos de instalação cobrem apenas os procedimentos de instalação, de modo que dados adicionais de cloud-config também devem fazer parte do sistema instalado para continuar instalando o pacote como parte dos processos de fazer upgrade ou redefinição.
Reempacotando uma imagem ISO gerada com arquivos extras
Alternativamente, se ter o download dinâmico de conteúdo no momento da instalação não é um comportamento desejado e uma imagem ISO já incluindo todos os binários extras é o objetivo real, isso também é possível, mas requer reempacotar manualmente a imagem ISO. Usando xorriso, a utilidade do Linux para criar ISOs, isso se torna um processo relativamente fácil.
Vamos criar um diretório overlay para criar a árvore de diretórios que precisa ser adicionada à raiz da imagem ISO. Nesse caso, o diretório overlay poderia conter:
overlay/
data/
extra-pkgs/
some_package.rpm
iso-config/
install_hooks.yaml
Estamos assumindo que install_hooks.yaml é o conteúdo do cloud-config real exposto na seção anterior, que é incluído manualmente na imagem em vez de ser incorporado em um recurso SeedImage. A pasta data está eventualmente incluindo os binários que queremos adicionar à imagem ISO.
Assumindo que já baixamos uma imagem ISO Elemental vinculada a um MachineRegistration específico com a seguinte chamada xorriso, todo o conteúdo da pasta overlay seria incluído em uma nova imagem ISO:
xorriso -indev elemental.x86_64.iso -outdev elemental.custom.x86_64.iso -map overlay / -boot_image any replay
Requer xorriso igual ou superior à versão 1.5.
O conteúdo de install_hooks.yaml poderia eventualmente ser o mesmo da seção anterior, mas omitindo o download do pacote RPM e também adaptando o caminho do RPM para /run/initramfs/live/data/extra-pkgs/some_package.rpm, já que a pasta raiz da imagem ISO está montada em /run/initramfs/live.