Atendo 40 terminais fixos instalados (com touch screen, sem mouse nem teclado conectados) em um ambiente. Todos esses 40 PCs possuem uma versão simplificada do Ubuntu e do Chromium instalada, pois seu único propósito é servir um aplicativo da web em modo de tela cheia.
Agora, aqui está o problema: há alguns dias, tivemos uma falha de energia, todos os terminais foram desligados. Quando reiniciei todos eles novamente, nenhuma tela sensível ao toque funcionou, não tenho ideia do porquê. Porém, reinstalar o sistema com uma unidade flash CloneZilla resolveu o problema. O que deu muito trabalho - conectar o teclado e a unidade flash, alterar as configurações do BIOS para inicializar a partir da unidade flash, reinstalar todos os 40 terminais.
Como isso pode ser feito de uma maneira melhor? Meu cenário de sonho seria implementar uma alteração (digamos que eu também gostaria de ter um pequeno servidor NodeJs em cada terminal ou configurar o acesso SSH). Eu pensei em executar servidores PXE, mas aparentemente isso leva MUITO tempo (imagem de 800 MB x 40 leva algum tempo para baixar).
Alguém tem uma solução melhor sobre como essa configuração pode ser mantida de uma maneira melhor?
Responder1
Bem, o PXE não precisa ser um caso em que você baixa a imagem para cada servidor durante a inicialização. Na verdade, o uso mais tradicional para ele (pelo menos quando se trata de sistemas UNIX) era fornecer inicialização sem disco para sistemas que tinham seu sistema de arquivos raiz em NFS (ou atualmente, possivelmente, em algum outro sistema de arquivos de rede). Não tenho certeza se isso pode funcionar bem para você (ele troca os problemas de tempo do PXE por um único ponto de falha no servidor NFS), mas pode valer a pena dar uma olhada. Você também pode fazer coisas semelhantes com iSCSI ou NBD, embora sejam um pouco mais complicados de configurar.
Você também pode considerar a possibilidade de carregar coisas em cadeia de forma semelhante a comoSystemRescueCDfaz. Ao inicializar pela rede, ele só precisa carregar o syslinux, o kernel e o disco RAM inicial por TFTP e pode então carregar a imagem real do sistema por meio de outro protocolo (por exemplo, onde eu trabalho, fazemos isso por HTTP). O TFTP é um protocolo terrivelmente ineficiente (requer que cada bloco seja reconhecido separadamente antes que o próximo bloco possa ser enviado e usa um tamanho de bloco muito pequeno por padrão), portanto, fazer isso pode acelerar significativamente o processo (temos a rede onde trabalho configurado para netboot SystemRescueCD e fazer com que ele carregue a imagem do sistema por HTTP em vez de TFTP, o que reduz o tempo de inicialização de quase 15 minutos para cerca de 3 nos sistemas em que testei quando o configurei).
Dado que você está executando algo baseado no Ubuntu, você pode usar uma combinação deMAASeJuju, já que essa é a pilha padrão para fazer esse tipo de coisa com o Ubuntu.
Além de tudo isso, se você puder assumir com segurança que interrupções em massa como as que você viu são raras (e, portanto, provavelmente não será necessário reinstalar todos os 40 sistemas de uma vez), você pode simplesmente olhar para uma ferramenta de gerenciamento automatizada. Não ajudaria na instalação de sistemas, mas simplificaria bastante a implantação de alterações na configuração ou nos pacotes dos sistemas. Eu particularmente gostoAnsiblepara esse tipo de coisa, em grande parte por causa de quão simples é configurar (você literalmente só precisa de login SSH sem senha e um único pacote python específico instalado nos sistemas que você pretende gerenciar) e o fato de que ele usa um stateful (principalmente ) linguagem declarativa para lidar com tarefas que é realmente fácil de aprender.Fantoche,Chefe de cozinha, eSalsão as outras três opções populares para esse tipo de coisa, mas nunca tive nenhuma experiência pessoal com elas além de uma avaliação superficial, então não posso dar nenhum conselho sobre qual delas pode ser melhor para seu uso.
Responder2
Eu também recomendo a inicialização PXE sem disco, mas como alternativa, você pode facilmente fazer backup de um sistema e restaurá-lo para todos os 40 nesta situação. Isso seria mais rápido do que reinstalar 40 vezes.