ID-DEB-005 - Configuração Do Clipping Diário Do Ro-DOU
ID: KB-ID-DEB-005
Responsável: Thiago Amaral, TI
Status: Publicado
Última Atualização: 19/09/2025
Propósito
Orientar o time de Suporte TI Nível 1 na instalação das dependências, configuração inicial e automação de rotinas do projeto Ro-dou para monitoramento e clipping do Diário Oficial da União (D.O.U).
Aplica-se a
Time de Suporte TI Nível 1 da Fictor.
Servidores Linux (Debian 11 ou NixOS) designados para hospedar o projeto.
Pré-requisitos
Acesso com privilégios
sudoouroota um servidor Linux.Acesso de administrador ao portal Azure para configurar Serviços de Comunicação, Microsoft Entra ID e regras de firewall (NSG).
Git instalado no servidor para clonar o repositório do projeto.
Instruções
O processo é dividido em quatro partes: preparação do ambiente, configuração do serviço de e-mail no Azure, integração do SMTP com o projeto e, por fim, a configuração das rotinas de pesquisa.
Parte 1: Preparação do Ambiente no Servidor
1. Instalar Pacotes Necessários
Escolha o procedimento correspondente ao sistema operacional do seu servidor.
Para Debian 11:
# Instalar dependências básicas sudo apt-get update sudo apt-get install make python3 python3-pip ca-certificates curl -y # Adicionar o repositório oficial do Docker sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL [https://download.docker.com/linux/debian/gpg](https://download.docker.com/linux/debian/gpg) -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] [https://download.docker.com/linux/debian](https://download.docker.com/linux/debian) $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Instalar Docker e Docker Compose sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y # Instalar Apache Airflow via pip pip install 'apache-airflow==2.10.3' --constraint "[https://raw.githubusercontent.com/apache/airflow/constraints-2.10.3/constraints-3.9.txt](https://raw.githubusercontent.com/apache/airflow/constraints-2.10.3/constraints-3.9.txt)"Para NixOS: Adicione o seguinte ao seu arquivo
configuration.nix:environment.systemPackages = with pkgs; [ docker docker-compose apache-airflow make ]; virtualisation.docker.enable = true; # Permite pacotes "unfree" se necessário para algum componente nixpkgs.config.allowUnfree = true;
```
2. Clonar e Iniciar o Projeto
Clone o repositório do projeto para a pasta do usuário que irá gerenciá-lo:
git clone [https://github.com/ThiagoFictor/Ro-dou-consig](https://github.com/ThiagoFictor/Ro-dou-consig)Navegue até a pasta do projeto:cd Ro-dou-consigInicie os serviços Docker usando o comando `make`:sudo make run
4. Acesse a interface do Apache Airflow em http://localhost:8080.
* Login: airflow
* Senha: airflow
3. Configurar Acesso Remoto à VM (Azure)
Para acessar a interface do Airflow de fora do servidor, crie uma regra de firewall no Azure.
Navegue até a sua Máquina Virtual no Portal Azure.
Vá para Rede e adicione uma regra de porta de entrada.
Configure a regra com as seguintes propriedades: * Intervalos de portas de destino:
8080* Protocolo:TCP* Ação:Permitir* Nome:Allow-Airflow-8080
Parte 2: Configuração do Serviço de E-mail (SMTP no Azure)
4. Criar o Serviço de Comunicação e E-mail
No Portal Azure, procure e crie um recurso do tipo Communication Services. Dê a ele um nome (ex:
FCC-SMTP).Dentro do recurso, navegue até Email e clique em Conectar um domínio.
Será necessário criar um Serviço de Comunicação por Email.
Dentro deste novo serviço, vá em Provisionar domínios para adicionar e verificar seu domínio customizado (ex:
fictorconsig.com.br). Siga as instruções para adicionar os registros DNS necessários para a verificação.
5. Criar um Registro de Aplicação (Microsoft Entra ID)
Navegue até Microsoft Entra ID > Registros de aplicativo.
Crie um Novo registro. * Nome:
SMTP-RO-DOU-APP* Tipos de conta suportados: Contas em qualquer diretório organizacional (Multilocatário).Após registrar, vá para Certificados e segredos e crie um Novo segredo do cliente. Anote o Valor do segredo, pois ele não será exibido novamente.
6. Configurar Permissões de Acesso (IAM)
Volte para o seu recurso Communication Services (
FCC-SMTP).Vá para Controle de Acesso (IAM).
Crie uma função personalizada: * Clone a função Leitor (Reader). * Nome:
SMTP-RO-DOU-ROLE* Permissões: Adicione as seguintes permissões de "Ações" (Actions): *Microsoft.Communication/RegisteredSubscriptions/Read*Microsoft.Communication/EmailServices/WriteAinda em Controle de Acesso (IAM), adicione uma atribuição de função. * Função: Selecione a função
SMTP-RO-DOU-ROLEque você acabou de criar. * Membros: Selecione o registro de aplicativoSMTP-RO-DOU-APP.
Parte 3: Integração e Configuração das Rotinas
7. Adicionar Variáveis de SMTP ao Docker Compose
Com as credenciais do Azure em mãos, configure o Airflow para usá-las.
Na pasta do projeto (
Ro-dou-consig), crie um arquivo chamado.env.Popule o arquivo
.envcom as suas credenciais:AIRFLOW_SMTP_HOST=smtp.azurecomm.net AIRFLOW_SMTP_PORT=587 AIRFLOW_SMTP_USER=FCC-SMTP.<Application-Client-ID>.<Directory-Tenant-ID> AIRFLOW_SMTP_PASSWORD=<Client-Secret-Value> [email protected]Edite o arquivo
docker-compose.yml. Na seçãoenvironmentdos serviços do Airflow, adicione:environment: &airflow-common-env AIRFLOW__SMTP__SMTP_HOST: " {AIRFLOW_SMTP_MAIL_FROM}" AIRFLOW__SMTP__SMTP_PORT: " {AIRFLOW_SMTP_USER}" AIRFLOW__SMTP__SMTP_PASSWORD: "${AIRFLOW_SMTP_PASSWORD}" AIRFLOW__SMTP__SMTP_STARTTLS: 'true'
4. Reinicie o projeto para aplicar as novas variáveis: sudo make run.
8. Configurar as Rotinas de Pesquisa (DAGs)
Crie arquivos .yaml na pasta dag_confs para definir as pesquisas agendadas. Cada arquivo representa uma DAG (Directed Acyclic Graph) no Airflow.
Exemplo (**
general_parameters.yaml**):dag: id: general_parameters description: DAG com palavras gerais do Consignado. schedule: 0 8 * * MON # Toda segunda-feira às 8:00 search: terms: - margem consignável - consignação - consignado report: emails: - [email protected]
9. Criar a Caixa de Correio Compartilhada
No seu provedor de e-mail (ex: Microsoft 365), crie a caixa de correio compartilhada que receberá os relatórios, como [email protected].
Parte 4: Execução e Teste
Para testar, navegue até
dag_confs/examples_and_testsno projeto.Edite o arquivo
all_parameters_example.yaml, inserindo um e-mail real no campoemails:.Na interface do Airflow, ative e execute a DAG
all_parameters_example.Verifique a caixa de entrada do e-mail configurado para confirmar o recebimento do relatório.
Resultado Esperado
O projeto Ro-dou rodando em um servidor, com o Apache Airflow acessível remotamente. As rotinas (DAGs) estão configuradas para buscar termos específicos no Diário Oficial da União e enviar os relatórios por e-mail automaticamente através do serviço SMTP do Azure.
Solução de Problemas
Problema/Erro: Os e-mails não estão sendo enviados. * Solução: Verifique as variáveis de ambiente no arquivo
.enve nodocker-compose.yml. Confirme se o segredo do cliente no Azure não expirou e se as permissões IAM estão corretas. Usedocker compose logs airflow-workerpara inspecionar erros de conexão SMTP.Problema/Erro: A DAG não aparece na interface do Airflow. * Solução: Verifique se há erros de sintaxe no seu arquivo
.yamlde configuração da DAG. Certifique-se de que o Airflow Scheduler está rodando e verifique os logs dele (docker compose logs airflow-scheduler) para erros de parsing de arquivos.
Artigos Relacionados
Referências
Histórico de Revisões
24/10/2024
v1.0
Thiago Thalisson
Confecção do documento.
09/12/2024
v1.1
Thiago Thalisson
Adicionado instruções de instalação dos pacotes no Debian 11.
28/01/2025
v2.0
Thiago Thalisson
Atualizados requisitos e local do repositório.
Last updated