Este projeto automatiza a gestão de Class of Service (CoS) e Filtros de Firewall para roteadores Juniper MX204 (chipset Trio), garantindo uma configuração padronizada e segura para links dedicados de ISP.
- Ciclo de Vida Iterativo (C/E/D/S): O script verifica a existência do cliente e oferece opções para Criar, Editar, Deletar ou Saír.
- Visualização de Auditoria: Novo roteiro para consultar configurações atuais (IPv4, IPv6, Firewall, CoS) e gerar relatórios Markdown.
- Relatório em PDF: Geração automática de relatórios técnicos profissionais para cada cliente (Criação/Edição).
- Segurança com Ansible Vault: Proteção de credenciais de rede através de criptografia.
- Dual-Stack nativo: Suporte completo a IPv4 e IPv6 com classificadores independentes.
- Conectividade Flexível: Suporte a portas SSH customizadas (ex: 60002).
manage_clients.yml: Playbook principal interativo (Gestão).view_client.yml: Playbook de visualização e auditoria (Consulta).reports/: Pasta centralizada onde todos os relatórios (.pdf e .md) são salvos.inventory.yml: Inventário com definições de host e porta.ansible.cfg: Configurações de ambiente (desabilita host_key_checking).templates/cos_config.j2: Modelo Jinja2 para a configuração Junos.templates/client_report.md.j2: Modelo Markdown para relatórios de consulta.scripts/generate_report.py: Script Python para geração de relatórios PDF.group_vars/all/vault.yml: Arquivo encriptado para senhas.
- Ansible instalado.
- Coleção Juniper instalada:
ansible-galaxy collection install junipernetworks.junos - Python 3.12+ com biblioteca
fpdf2. - O arquivo
ansible.cfgjá está configurado para permitir conexões sem validação estrita de host key (host_key_checking = False), necessário para novos dispositivos.
Edite o arquivo vault.yml com sua senha e encripte-o:
ansible-vault encrypt group_vars/all/vault.ymlExecute o playbook principal passando a flag do Vault:
ansible-playbook -i inventory.yml manage_clients.yml --ask-vault-passPara consultar a situação técnica de um cliente e gerar um relatório formatado em Markdown:
ansible-playbook -i inventory.yml view_client.yml --ask-vault-passO arquivo será salvo automaticamente na pasta reports/ como REPORT_CLIENTE_VLAN_<ID>.md.
- VLAN ID: Digite o ID do cliente.
- Branching: Se o cliente já existir, selecione
e(Edit),d(Delete) ous(Skip). - Dados: Para novos clientes, insira os dados separados por vírgula conforme solicitado.
Todos os relatórios (PDF e Markdown) são salvos na pasta reports/ seguindo o padrão:
- PDF:
REPORTE_VLAN_<ID>.pdf(Gerado na Criação/Edição) - Markdown:
REPORT_CLIENTE_VLAN_<ID>.md(Gerado na Consulta)
Para abrir os relatórios PDF diretamente pelo terminal Linux:
evince reports/REPORTE_VLAN_<ID>.pdfOu abra manualmente a pasta reports/ e utilize o seu leitor de PDF preferido.
Consultoría ISP/NOC - Automação Juniper MX204