Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Automação de Provisionamento de ONU GPON via Ansible e Netmiko em Bancada Virtual

Você irá automatizar o provisionamento de uma ONU GPON em um OLT simulado usando Ansible e Netmiko, com validação do estado final. O laboratório pode ser executado em cerca de 2 horas.

Ansible do zero à automação avançada de operações em redes ópticas
Ligado ao treinamento Ansible do zero à automação avançada de operações em redes ópticas
ULC-LAB-TELE-0002 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
10
Validações
5
Versões da documentação consultada
Ansible 2.15 · Netmiko 4.2.0 · Python 3.10 · OpenSSH a versão estável atual
Objetivo

Demonstrar como o Ansible, aliado ao Netmiko, pode automatizar o provisionamento inicial e a configuração de uma ONU GPON em um ambiente simulado, permitindo o controle de mudanças e o compliance de configurações em redes ópticas. O laboratório mostra como integrar automação de rede ao ciclo de operação, reduzindo erros manuais e acelerando o deployment.

Topologia

Três VMs em rede privada: uma VM 'controladora' (Ansible + Netmiko), uma VM 'OLT' rodando um simulador de CLI (ex: OpenOLT ou mock SSH), e uma VM 'ONU' (simulada, apenas para fins de validação de reachability). A controladora acessa a OLT via SSH (192.168.56.10), e a OLT simula a ativação de uma ONU na porta GPON 1/1/1. A ONU responde a pings da OLT.

         +-------------------+
         |  VM Controladora  |
         |  (Ansible+Netmiko)|
         +--------+----------+
                  |
           SSH (192.168.56.10)
                  |
         +--------v----------+
         |      VM OLT       |
         |(Simulador CLI SSH)|
         +--------+----------+
                  |
           Simula GPON 1/1/1
                  |
         +--------v----------+
         |      VM ONU       |
         | (Simulada, ping)  |
         +-------------------+

Equipamentos e software

ItemRequisito, licença ou versão
VM Controladora1 vCPU, 1GB RAM, Ubuntu 22.04 ou similar, acesso SSH à OLT
VM OLT1 vCPU, 512MB RAM, Ubuntu 22.04 ou similar, SSH habilitado, Python 3
VM ONU1 vCPU, 256MB RAM, Ubuntu 22.04 ou similar, interface de rede ativa
AnsibleGPLv3 · 2.15
NetmikoMIT · 4.2.0
PythonPSF · 3.10
OpenSSHBSD · a versão estável atual

Roteiro

  1. Preparar as VMs e a rede virtual

    Crie três VMs em sua máquina ou ambiente de virtualização favorito. Assegure que todas estejam na mesma rede privada (ex: 192.168.56.0/24) e que a VM Controladora tenha acesso SSH à VM OLT.

    O que você deve ver: As três VMs se comunicam entre si, e a Controladora acessa a OLT via SSH.

  2. Instalar o Ansible e dependências na Controladora

    O Ansible é a base da automação. Instale o Ansible e o Netmiko na VM Controladora para permitir automação de equipamentos de rede via SSH.

    sudo apt update && sudo apt install -y python3-pip git
    pip3 install ansible==2.15 netmiko==4.2.0

    O que você deve ver: Ansible e Netmiko instalados. 'ansible --version' mostra a versão correta.

  3. Configurar o inventário do Ansible

    O inventário define quais hosts serão automatizados. Crie um arquivo de inventário simples com a OLT.

    echo '[olt]
    192.168.56.10 ansible_user=oltadmin ansible_ssh_pass=oltpass ansible_network_os=generic' > hosts

    O que você deve ver: Arquivo 'hosts' criado com a entrada da OLT.

  4. Simular a CLI da OLT

    Como não há OLT física, simule uma CLI SSH que aceite comandos básicos de provisionamento. Use um script Python simples rodando na porta 22 da VM OLT ou configure o OpenSSH para aceitar conexões e responder a comandos mockados.

    Consulte a documentação para scripts de mock SSH ou use um shell restrito (rbash) com comandos customizados.

    O que você deve ver: A Controladora conecta via SSH e recebe um prompt simulado.

  5. Criar o playbook Ansible para provisionamento da ONU

    O playbook define as tarefas de automação. Crie um playbook YAML que use o módulo 'ansible.netcommon.netmiko' para enviar comandos de provisionamento GPON à OLT.

    cat > provisiona_onu.yml <<EOF
    - hosts: olt
      gather_facts: no
      tasks:
        - name: Provisionar ONU na porta GPON 1/1/1
          ansible.netcommon.netmiko_send_config:
            config_command:
              - interface gpon 1/1/1
              - onu add 1 sn 48575443AABBCCDD
              - onu set 1 admin-state up
              - exit
    EOF

    O que você deve ver: Playbook criado com comandos típicos de provisionamento GPON.

  6. Executar o playbook de provisionamento

    Execute o playbook para provisionar a ONU na OLT simulada. Isso demonstra a automação do processo de ativação.

    ansible-playbook -i hosts provisiona_onu.yml

    O que você deve ver: Saída do Ansible mostrando as tarefas como 'ok' ou 'changed'.

  7. Simular resposta da ONU

    A ONU simulada precisa responder a pings da OLT para validar o provisionamento. Configure a ONU para responder ICMP.

    sudo ip addr add 10.10.10.2/24 dev eth0
    sudo ip link set eth0 up

    O que você deve ver: A ONU responde a pings da OLT.

  8. Validar a configuração na OLT

    Use o Ansible para coletar o status da ONU provisionada, simulando um comando 'show onu status'.

    cat > valida_onu.yml <<EOF
    - hosts: olt
      gather_facts: no
      tasks:
        - name: Verificar status da ONU
          ansible.netcommon.netmiko_send_command:
            command_string: show onu status 1
          register: onu_status
        - debug:
            var: onu_status.stdout_lines
    EOF
    ansible-playbook -i hosts valida_onu.yml

    O que você deve ver: Saída mostra a ONU como 'up' ou 'active'.

  9. Automatizar compliance de configuração

    Crie um playbook que compare a configuração atual da ONU com o padrão desejado. Isso garante compliance.

    cat > compliance_onu.yml <<EOF
    - hosts: olt
      gather_facts: no
      tasks:
        - name: Obter config atual
          ansible.netcommon.netmiko_send_command:
            command_string: show running-config interface gpon 1/1/1 onu 1
          register: config_atual
        - name: Validar compliance
          assert:
            that:
              - "'admin-state up' in config_atual.stdout"
    EOF
    ansible-playbook -i hosts compliance_onu.yml

    O que você deve ver: Playbook termina sem erros se a configuração estiver em compliance.

  10. Documentar e limpar o ambiente

    Registre os comandos usados e limpe as configurações criadas para repetir o laboratório futuramente.

    Consulte a documentação para comandos de limpeza ou remova manualmente as configurações simuladas.

    O que você deve ver: Ambiente pronto para nova execução.

Como saber que funcionou

TesteComandoCritério
Acesso SSH da Controladora à OLTssh oltadmin@192.168.56.10Prompt da CLI simulada aparece
Execução do playbook de provisionamentoansible-playbook -i hosts provisiona_onu.ymlTarefas retornam 'ok' ou 'changed'
ONU responde a ping da OLTping -c 3 10.10.10.2Pacotes recebidos sem perda
Validação do status da ONUansible-playbook -i hosts valida_onu.ymlSaída mostra ONU 'up' ou 'active'
Compliance da configuraçãoansible-playbook -i hosts compliance_onu.ymlPlaybook termina sem erros

Troubleshooting

SintomaCausa provávelCorreção
Erro de conexão SSHUsuário, senha ou IP incorretos no inventárioVerifique o arquivo 'hosts' e tente novamente
Playbook falha ao enviar comandosCLI simulada não reconhece comandosAjuste o script de simulação para aceitar os comandos esperados
ONU não responde a pingInterface de rede da ONU não configurada ou upConfigure IP e ative a interface na VM ONU
Compliance falhaConfiguração da ONU não foi aplicada corretamenteReaplique o playbook de provisionamento e valide novamente
Saída inesperada do AnsibleVersão incompatível do Netmiko ou AnsibleConfirme as versões instaladas e consulte a documentação

Segurança e hardening

  • Use senhas fortes para SSH e evite salvar credenciais em texto plano em ambientes reais
  • Restrinja o acesso SSH apenas à Controladora
  • Desative SSH root login na OLT simulada
  • Remova arquivos de inventário e playbooks com senhas após uso
  • Em redes reais, utilize autenticação por chave e controle de acesso

Checklist final

Referências

  1. Ansible User Guide · Ansible (Red Hat) (docs.ansible.com)
  2. Netmiko Documentation · Netmiko.readthedocs (netmiko.readthedocs.io)
  3. Python 3 Documentation · Python Software Foundation (docs.python.org)
  4. YAML Specification · Yaml (yaml.org)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
4 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.