Quais são as melhores práticas para manter dezenas (senão centenas) de servidores debian atualizados? Tendo em mente que:
- Existem grupos de servidores (ou seja, servidores da web idênticos, servidores de banco de dados, ...)
- Pode haver vários problemas do Debian (lenny, etch)
- Executar um loop em todos os servidores e executar o apt-get update && upgrade não é aceitável (porque é o que estou fazendo no momento :)) Deve ser melhor que isso!
Atualmente, quando finalmente termino todas as atualizações, uma nova atualização de segurança é publicada e preciso fazer tudo de novo.
Agradecemos antecipadamente à comunidade serverfault!
Respostas:
Eu uso o apt-dater para gerenciar a atualização de todas as minhas caixas Debian. Parece fazer o truque bem o suficiente. Ainda não tentei escalá-lo para centenas de hosts.
fonte
O Google resolveu isso com o debmarshal:
http://code.google.com/p/debmarshal/
O que permite aprovar pacotes de um repositório upstream para instalação nos hosts de produção.
Então você pode simplesmente executar o cron-apt no modo totalmente automático.
Aqui está um vídeo de introdução:
http://www.youtube.com/watch?v=L3hRToC23mQ
fonte
Estávamos testando usando o fantoche para atualizar correções de segurança em pacotes não essenciais. Executaríamos o apticron para enviar por e-mail uma lista de atualizações para todos os servidores e, em seguida, executar diariamente um script que mesclasse essas atualizações em um arquivo de manifesto de fantoche que fornecesse o pacote e a versão para cada distribuição. Isso atualizaria vários arquivos nos servidores individuais e iniciava um script de atualização quando um pacote precisava de atualização. Isso funcionou razoavelmente bem, mas não o testamos tanto quanto eu gostaria. Esse esquema contornou a limitação do Puppet de não ter o mesmo recurso definido em vários locais.
Eu também não estava confortável em fazer atualizações automáticas de coisas como MySQL ou PostgreSQL, onde uma atualização aleatória interromperia um serviço, possivelmente no meio do dia. Isso ainda exigiria atualizações manuais.
Spacewalk e Debmarshall parecem alternativas adequadas para o nosso esquema de marionetes.
fonte
Aparentemente, o Spacewalk agora tem suporte preliminar para o Debian. Talvez, juntos, com Puppet, esse seja o meu ponto de partida. Eu tenho certeza que o cara que está desenvolvendo o suporte ao Debian para Spacewalk o amará por trabalhar com ele para levar o suporte ao Debian a um nível superior.
fonte
Na maneira de sistemas de configuração baseados em pull, como o Puppet, também existem o bcfg2 e o cfengine. Um ou outro deles pode atender bem às suas necessidades. Estou lançando o bcfg2 no meu laboratório agora.
fonte
Uma solução pode ser dada por func
fonte
Não tenho certeza de que tipo de solução você está esperando. Você provavelmente conhece os trabalhos cron, mas eu não atualizaria os sistemas às cegas, pois são necessárias intervenções humanas (e é por isso que eles pagam para você fazer isso, certo?)
Se você tivesse sistemas completamente idênticos, poderia considerar o uso de algo como o rsync para trazer as diferenças, mas descobrir quais arquivos não são para o rsync pode ser difícil, e eu não faria isso enquanto os serviços estão em execução. Pelo menos os scripts de atualização são configurados para gerenciar a reinicialização dos serviços e a mesclagem nas diferenças do arquivo de configuração.
Talvez se você explicar qual é o problema com os comandos apt-get, poderemos ver o que você deseja evitar.
Se o problema for largura de banda e tempo para fazer o download, talvez você deva configurar uma caixa para atuar como seu repositório Debian local. Existem guias Debian sobre como fazer isso.
Aqui estão algumas dicas sobre como minimizar o número de coisas que você precisa atualizar.
Ao instalar o Debian, não instale o Desktop, a menos que você realmente precise usar o X nesse console. A maioria dos servidores não precisa do X instalado. Isso pode diminuir significativamente o número de pacotes no sistema e, portanto, você não precisa atualizar tantos pacotes.
Verifique se o sources.list está incluindo apenas os repositórios que você realmente precisa. Se você já experimentou algum repositório e esqueceu disso, pode estar trazendo atualizações que não precisa ou não deseja.
Se você tiver problemas ao fazer atualizações às cegas em um servidor de produção, tenha cuidado em consultar os guias de atualização do Debian quando houver uma grande atualização (4.0 a 5.0). Eles passarão muito bem se você seguir as instruções de atualização. Não é tão fácil quanto executar o apt-get dist-upgrade e ir embora. Às vezes, nas instruções, existem dicas sobre quando executar o aptitude em vez do apt-get - existem pequenas diferenças nelas.
fonte
Você agora esta ferramenta "concha do dançarino"? Eu gosto e uso. Mas eu não sei se você pode usá-lo para muitos hosts. Talvez você possa tentar ...
http://www.netfort.gr.jp/~dancer/software/dsh.html.en
E ele está no repositório.
fonte
ClusterSSH. Você faz logon em todos os servidores e dá a eles exatamente os mesmos comandos, para poder também reagir às caixas de diálogo. Se um servidor receber uma pergunta extra, basta clicar nele e ele será o único que responderá.
Usei-o para atualizar 25 servidores da web do etch para o lenny. Funcionou como um encanto.
http://sourceforge.net/projects/clusterssh/
fonte
O cluster ssh é uma boa sugestão.
O debmarshal ainda não faz parte do debian - nem tenho certeza se será um pacote - parece ser um sistema completamente diferente com um repositório especializado. Como o orador disse, atualmente isso é hostil ao usuário, não amigável.
O Spacewalk parece ser um clone da Redhat Network, pelo menos na interface da web. Eu tive maus resultados ao usar o Redhat Network para atualizar sistemas. Certa vez, ele desligou, sem motivo aparente, e causou uma interrupção do serviço. Fiz uma atualização do yum imediatamente depois e ela lidou com isso muito bem, então só posso assumir que o problema era de algo que vomitava no lado da RHN. A outra coisa que eu não gosto nas atualizações do RHN é que você não sabe quando a atualização acontecerá, para observar os problemas.
fonte