1. Introdução
1.1 O que é AlmaLinux?
AlmaLinux é uma distribuição Linux de código aberto e gratuita, desenhada como um substituto ao CentOS. Baseada no Red Hat Enterprise Linux (RHEL), ela oferece um sistema operacional estável e seguro, ideal para ambientes de produção que necessitam de longos ciclos de suporte e manutenção.
1.2 Por que automatizar atualizações?
Automatizar atualizações em sistemas operacionais é crucial para:
- Garantir a segurança, aplicando patches e correções de forma tempestiva.
- Minimizar o risco de falhas e vulnerabilidades que poderiam ser exploradas em versões desatualizadas.
- Reduzir o esforço administrativo necessário para manter o sistema operacional atualizado.
1.3 Objetivo do artigo
Este guia tem como objetivo explicar como configurar o dnf-automatic para realizar atualizações automáticas mensais no AlmaLinux 9. Iremos cobrir desde a instalação e configuração do dnf-automatic até a criação de um agendamento personalizado para executar estas atualizações à 1h da manhã de cada primeiro sábado do mês.
2. Visão Geral do dnf-automatic
2.1 O que é o dnf-automatic?
O dnf-automatic é uma ferramenta que permite gerenciar atualizações automáticas para sistemas baseados em RHEL, como o AlmaLinux. Ele funciona como um complemento ao gerenciador de pacotes DNF, automatizando o processo de busca, download e instalação de atualizações.
2.2 Principais funcionalidades
Entre as capacidades do dnf-automatic, destacam-se:
- Aplicação automática de atualizações de segurança e demais pacotes.
- Configuração para envio de notificações por e-mail ou registro em logs após a conclusão das atualizações.
- Possibilidade de definir timers personalizados para a execução das tarefas de atualização.
3. Preparando o Ambiente
3.1 Verificando requisitos
Antes de começar, certifique-se de que seu sistema está atualizado e que você está rodando o AlmaLinux 9:
sudo dnf update -y
3.2 Instalando o dnf-automatic
Instale o dnf-automatic utilizando o seguinte comando:
sudo dnf install -y dnf-automatic
4. Configurando o dnf-automatic
4.1 Local do arquivo de configuração
O arquivo de configuração para o dnf-automatic está localizado em /etc/dnf/automatic.conf. Este arquivo define como as atualizações automáticas devem ser tratadas.
4.2 Parâmetros importantes
Os principais parâmetros a serem configurados são:
- upgrade_type: Define o tipo de pacotes a serem atualizados (por exemplo, default ou security).
- apply_updates: Decide se o sistema apenas baixa ou também instala as atualizações.
- emit_via: Escolhe o método de notificação, como ’email’ ou ‘log’.
4.3 Exemplo de configuração mínima
Aqui está um trecho do arquivo automatic.conf com as configurações essenciais definidas:
upgrade_type = security
apply_updates = yes
emit_via = email
email_from = [email protected]
email_to = [email protected]
email_host = smtp.example.com
5. Desativando Timers Padrão
5.1 Por que desabilitar os timers diários?
Para evitar a execução de atualizações automáticas diárias, é recomendável desabilitar os timers padrão, pois vamos definir um agendamento mensal personalizado.
5.2 Desabilitando timers pré-existentes
Desabilite os timers com os seguintes comandos:
sudo systemctl disable --now dnf-automatic.timer
sudo systemctl disable --now dnf-automatic-install.timer
6. Criando um Timer Mensal Personalizado
6.1 O que é um arquivo .timer do systemd?
Um arquivo .timer é uma unidade do systemd que agenda a execução de uma tarefa em intervalos regulares, baseando-se em calendários ou timers.
6.2 Estrutura do arquivo de timer
Crie um arquivo chamado dnf-automatic-monthly.timer em /etc/systemd/system/ com o seguinte conteúdo:
[Unit]
Description=Monthly automatic DNF updates (once a month on Saturday at 1AM)
[Timer]
OnCalendar=Sat *-*-1..7 01:00
Persistent=true
Unit=dnf-automatic-install.service
[Install]
WantedBy=timers.target
O parâmetro OnCalendar define a execução para o primeiro sábado de cada mês à 1h da manhã.
7. (Opcional) Criando um Service Customizado
7.1 Por que criar um .service separado?
A criação de um arquivo .service personalizado pode ser útil para executar scripts adicionais antes ou após a atualização, ou para personalizar a execução de forma mais detalhada.
7.2 Exemplo de arquivo .service
Crie um arquivo chamado dnf-automatic-monthly.service em /etc/systemd/system/ com o seguinte conteúdo:
[Unit]
Description=Run dnf-automatic once a month
[Service]
Type=oneshot
ExecStart=/usr/bin/dnf-automatic install
Esse serviço será chamado pelo nosso timer personalizado para executar a atualização.
8. Habilitando e Testando o Timer
8.1 Recarregando a configuração do systemd
sudo systemctl daemon-reload
8.2 Habilitando o novo timer
sudo systemctl enable dnf-automatic-monthly.timer
sudo systemctl start dnf-automatic-monthly.timer
8.3 Verificando o agendamento
systemctl list-timers --all | grep dnf-automatic-monthly
8.4 Testando manualmente
sudo systemctl start dnf-automatic-monthly.service
# Verificando logs
journalctl -u dnf-automatic-monthly.service
9. Logs e Notificações
9.1 Onde checar registros de execução?
journalctl -u dnf-automatic-install.service
Esta é uma maneira eficaz de verificar o que foi atualizado e se ocorreram erros durante a execução.
9.2 Configuração de notificações por e-mail
Se você configurou o dnf-automatic para enviar notificações por e-mail, não esqueça de testar a funcionalidade para garantir que os e-mails estão sendo enviados corretamente.
10. Conclusão
10.1 Benefícios do agendamento mensal:
Com esta configuração, você pode manter seu sistema seguro e atualizado, minimizando interrupções e mantendo um controle firme sobre quando as atualizações são aplicadas.
10.2 Próximos passos e ferramentas adicionais:
Para ambientes maiores, considere explorar ferramentas como Foreman, Katello ou Satellite para uma gestão centralizada das atualizações.
10.3 Recapitulação:
Revimos como instalar o dnf-automatic, como configurá-lo para agendamento de atualizações mensais, e como personalizar um arquivo .timer para controlar execuções conforme necessidade. A manutenção regular do sistema é uma prática essencial para garantir a estabilidade e segurança do ambiente operacional.
Este artigo foi uma publicação do BlueHat Tech Blog. Continue nos acompanhando para mais dicas e tutoriais!