Maneira eficiente de implantar um kernel personalizado em vários hosts

1

Recentemente, tive que fazer uma compilação personalizada do kernel do Linux a partir de sua origem. Esse kernel personalizado está agora instalado na máquina que usei para construí-lo e funciona bem.

Agora existem outros sistemas similares (isto é, hardware) em que eu gostaria que eles executassem o mesmo kernel. Eu particularmente não quero reconstruir o kernel em cada uma delas, AFAIK se o hardware é similar de uma máquina para outra, não deve haver necessidade de reconstruir o kernel.

Se essa suposição for válida, qual seria a maneira mais eficiente de implementar a construção do kernel existente em máquinas semelhantes?

Algumas opções vêm à mente:

  1. copiando os arquivos de criação personalizados de /boot/ e /lib/modules/
  2. gere um rpm com o kernel personalizado, a fim de implantá-lo facilmente, mantendo o controle de todos os arquivos instalados (e, portanto, fácil de remover também)

Outras opções? Como alguém tem experiência com isso?

    
por fduff 23.02.2016 / 22:06

2 respostas

1

Eu não tenho certeza de como semelhante suas máquinas são, mas eu trabalhei na implantação do Kernel para muitos sistemas idênticos. Opção 1 é tipicamente como eu faria isso - apenas empurrando o novo kernel e módulos pela rede. Embora se você tiver um gerenciador de pacotes no sistema, um pacote rpm também não seria uma maneira ruim de fazê-lo.

Se houver algumas diferenças de hardware no sistema, há uma chance de o kernel ter problemas. Como se houvesse um MAC Ethernet diferente em uma máquina, talvez seja necessário ativar o suporte para esse hardware específico.

Basicamente, você pode habilitar tudo o que o kernel tem a oferecer para obter um kernel inchado com suporte para cada sistema, ou você pode descobrir exatamente com qual hardware está trabalhando e habilitar o suporte apenas para esse hardware - produzindo um kernel mais enxuto .

    
por 24.02.2016 / 00:30
1

Supondo que todos os sistemas estejam executando a mesma distribuição, gere um RPM (assumindo que é o formato de pacote que sua distribuição usa) e implemente-o. Isso tem vários benefícios e, basicamente, sem desvantagem.

  • A geração de um pacote seguindo o procedimento de distribuição garante que tudo estará em vigor - não apenas o kernel, mas o initramfs (se usado), os módulos, os scripts de atualização do gerenciador de inicialização, a documentação, a depuração e as informações de compilação do módulo etc.
  • A geração de um pacote oferece rastreamento de versão. Mesmo que uma máquina esteja inoperante ou tenha um disco cheio quando você implantou uma atualização, você pode descobrir o que está instalado agora.
  • Usando o gerenciador de pacotes, você pode implantar qualquer software, não apenas um kernel. Você não precisa reinventar a roda para cada software que deseja implantar.
  • Se a sua distribuição não tiver uma maneira documentada de criar seus próprios pacotes de kernel, haverá um custo inicial. Mas se isso acontecer, e eu acho que a maioria faz, então o custo inicial não é maior do que reunir todos os bits necessários manualmente.
por 24.02.2016 / 01:26