Em servidores Debian, em vez de depender de um ambiente mínimo após a reinicialização para instalar atualizações de pacotes, recomendamos que você faça a atualização enquanto o sistema estiver ativo e reiniciando quando necessário.
Isso é suportado por vários pacotes:
-
apt
inclui temporizadores systemd (e uma tarefa cron para que funcione sem systemd) que implementa atualizações de índice periódicas (APT::Periodic::Update-Package-Lists
, definido como 0 por padrão e, portanto, desativado) e downloads automáticos de pacotes (APT::Periodic::Download-Upgradeable-Packages
, também definido como 0 por padrão); -
unattended-upgrades
implementa upgrades automáticos de pacotes que podem ser atualizados com segurança (normalmente, atualizações de segurança); ele se conecta aos timers fornecidos porapt
(APT::Periodic::Unattended-Upgrade
, também definido como 0 por padrão); -
needrestart
detecta daemons que precisam ser reiniciados e os reinicia com o contexto systemd apropriado (se o systemd estiver em uso); ele também suporta a reinicialização, se necessário, após uma atualização do kernel.
Existem prós e contras para ambas as abordagens. A reinicialização de todas as atualizações garante que os processos obsoletos nunca estejam disponíveis e minimiza o risco de corrupção do banco de dados do pacote (especialmente no mundo do RPM); Obviamente, ele reduz o tempo de atividade, mas em um mundo de serviços de alta disponibilidade e com balanceamento de carga, em vez de servidores , isso não é necessariamente importante. A atualização de um sistema ao vivo minimiza o risco de acabar com um servidor inacessível e mantém os serviços do sistema disponíveis (embora apt
possa ser melhorado também, já que os daemons podem ser interrompidos por muito tempo durante as atualizações - mas isso é outro problema ); no entanto, deixa você vulnerável por um pouco mais de tempo depois que uma falha de segurança for encontrada.
A página de manual vinculada a detalhes dos requisitos para qualquer pessoa que deseje implementar um sistema de atualização orientado ao servidor; seria relativamente simples fazê-lo no Debian, mas, até onde sei, não há implementação empacotada. Você poderia criar no topo da estrutura descrita acima, com os downloads automáticos como estão agora, e unattended-upgrades
em execução no ambiente de upgrade mínimo ...