Atualizações automáticas no Linux: Guia seguro para servidores de produção

Guia prático de atualizações automáticas seguras no Linux

1️⃣ Conceito chave

  • Security updates automáticas: Aplicam apenas patches de segurança críticos.
  • Full updates automáticos: Incluem também atualizações de aplicativos, bibliotecas e kernel.
    ⚠️ Em produção, normalmente aplicamos apenas security updates automaticamente e testamos o restante manualmente.

2️⃣ Debian / Ubuntu

Instalar o pacote necessário

sudo apt update
sudo apt install unattended-upgrades apt-listchanges
  • unattended-upgrades → Faz a atualização automática.
  • apt-listchanges → Mostra mudanças importantes antes de atualizar (opcional, útil em staging).

Configurar atualizações automáticas

Editar o arquivo:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Exemplo de configuração segura:

// Ativar apenas security updates
Unattended-Upgrade::Origins-Pattern {
        "origin=Debian,codename=${distro_codename}-security";
        "origin=Ubuntu,codename=${distro_codename}-security";
};

// Habilitar logs
Unattended-Upgrade::Logging "true";

// Reinício automático apenas se necessário
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "03:00";

Agendar updates

sudo dpkg-reconfigure --priority=low unattended-upgrades
  • Permite habilitar/desabilitar updates automáticos.
  • Pode agendar horário específico para não afetar usuários.

Verificar logs

less /var/log/unattended-upgrades/unattended-upgrades.log
  • Aqui você confere o que foi atualizado e se houve falhas.

3️⃣ RHEL / CentOS / AlmaLinux / RockyLinux

Instalar pacote necessário

sudo dnf install dnf-automatic -y

Configuração principal

Editar arquivo:

sudo nano /etc/dnf/automatic.conf

Configuração mínima recomendada para produção:

[commands]
upgrade_type = security
apply_updates = yes
random_sleep = 360

[emitters]
system_name = server01
emit_via = stdio

[base]
debuglevel = 1
  • upgrade_type = security → Atualiza apenas patches de segurança.
  • apply_updates = yes → Aplica automaticamente.
  • random_sleep → Evita todos os servidores atualizando ao mesmo tempo em clusters.

Ativar e iniciar serviço

sudo systemctl enable --now dnf-automatic.timer

Verificar logs

journalctl -u dnf-automatic.timer

4️⃣ Boas práticas adicionais

  1. Backups automáticos
    • Sempre faça backup completo antes de grandes atualizações.
    • Ex.: snapshots LVM/ZFS ou backup incremental.
  2. Staging/homologação
    • Teste atualizações em um servidor de teste antes de aplicar em produção.
    • Evita downtime inesperado.
  3. Monitoramento
    • Configure alertas via e-mail ou sistema de monitoramento (Zabbix, Grafana, Prometheus) para falhas de atualização.
  4. Kernel
    • Atualizações automáticas de kernel podem exigir reboot. Avalie reinício programado (Automatic-Reboot) ou agendamento manual.
  5. Logs centralizados
    • Em clusters ou servidores críticos, envie logs para um servidor central (rsyslog, ELK, Graylog) para auditoria.

5️⃣ Resumo rápido por distro

DistroPacoteTipo seguro de updateLogsReinício automático
Debian/Ubuntuunattended-upgradesSecurity updates/var/log/unattended-upgrades/Configurável
RHEL/CentOSdnf-automatic / yum-cronSecurity updatesjournalctl -u dnf-automaticConfigurável

💡 Dica de ouro:
Para produção, sempre combine:

  • Automático: patches de segurança.
  • Manual/testado: atualizações de kernel, apps críticos ou libs de sistema.