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!

Categorized in: