Como posso gerenciar o apt eficientemente em várias máquinas?

11

Eu gerencio cerca de 30 servidores Ubuntu usando o fantoche. Eu vi muitas referências ao cron-apt e apticron como abordagens para manter seus pacotes atualizados, mas não consegui encontrar uma maneira de gerenciar centralmente o processo. Com o cront-apt / apticron eu ainda precisaria efetuar login em cada host e executar aptitude update para executar a atualização. Sem mencionar as notificações de revisão de todas as 30 máquinas sempre que um pacote principal é atualizado.

Tem que haver uma maneira melhor. Alguma sugestão?

    
por Insyte 07.08.2009 / 20:39

6 respostas

3

Paisagem pode ser de seu interesse. Esta é a ferramenta de gerenciamento "oficial" para gerenciar grandes implementações do Ubuntu, e a Canonical provavelmente está muito interessada em obter seus dólares para seu uso.

RE-EDIT:

Primeiro, um aviso de isenção; Eu não usei espelhamento para Debian ou Ubuntu, então eu não estou familiarizado com o software.

Em segundo lugar, parece que o apt-mirror seria uma solução "muito pesada", minhas desculpas. A ideia original era que você teria uma máquina de teste separada (ou ambiente de teste, provavelmente uma máquina virtual?) Para implantar a atualização. Quando estiver satisfeito com o desempenho da atualização, você deverá colocar / colocar o pacote no seu espelho "deploy" (haverá o espelho local das fontes oficiais e um espelho secundário para apenas as atualizações que você deseja implantar). As máquinas remotas, então, executariam uma atualização em um horário pré-determinado e a puxariam do seu espelho "deploy" para cada máquina, uma tarefa cron composta por:

apt-get update && apt-get upgrade --quiet --assume-yes

Infelizmente, quando comecei a ler os detalhes, parece que apt-mirror vai puxar todos os tipos de coisas e não apenas os pacotes que você procura. Então, vou abandonar essa ideia, embora o conceito tenha algum mérito.

    
por 07.08.2009 / 20:59
14

Um colega de trabalho descobriu e olhou rapidamente para o apt-dater, que é um "gerenciador de atualização de pacote remoto baseado em terminal".

Você usa uma interface baseada em curses para gerenciar atualizações em todos os seus hosts, ou grupos de hosts, etc. Suporta o registro da sessão apt completa, incluindo quaisquer erros que possam ser encontrados, etc.

Depende de ssh e sudo nas máquinas gerenciadas.

veja link

Não usei eu mesmo, então não posso endossar, mas parece próximo do que você está procurando.

    
por 07.08.2009 / 21:09
4

Como você já está usando o Puppet, a maneira mais fácil de fazer isso (e o melhor para fins de controle / controle de alterações) é especificar a versão desejada dos pacotes que você deseja instalar no manifesto do fantoche. Você fica de olho na lista de anúncios de segurança, e quando algo que você usa vem apenas você atualizar o Puppet para dizer "instalar esta nova versão deste pacote". Supondo que você esteja usando o controle de revisão em seus manifestos, você saberá quando a "política" foi alterada e os relatórios do Puppet mostrarão exatamente quando a alteração foi realmente feita (para que você possa correlacionar isso facilmente a qualquer evento de log posterior).

    
por 07.08.2009 / 22:53
2

Dê uma olhada no clusterssh (apt-get install clusterssh):

$ cssh server1 server2 server3 ...

    
por 07.08.2009 / 23:00
1

Sem ter pensado nisso antes, minha primeira ideia seria algo semelhante ao que avery sugeriu, especialmente se você já tem um ambiente de teste.

Basicamente, você configura suas máquinas de produção para atualizar automaticamente a partir do seu próprio repositório local, e você só atualiza este repositório após ter feito upgrade do seu ambiente de teste para a versão mais recente do que você executa.

O Apticron não escala bem, foi projetado para rodar em ambientes bem pequenos, mas tem alguns pontos positivos:

  • Ele não envia apenas uma lista, mas também os changelogs dos pacotes a serem atualizados.
  • Para obter os changelogs, ele faz o download dos pacotes, portanto, quando você faz upgrade, não precisa esperar que eles sejam baixados.
por 08.08.2009 / 04:37
0

Algumas vezes atrás eu escrevi um script de Malha de baixo nível / automação suja (fabfile) para atender a requisitos semelhantes, você pode verificar em:

link

    
por 13.05.2015 / 12:11