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.

- 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
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
| Item | Requisito, licença ou versão |
|---|---|
| VM Controladora | 1 vCPU, 1GB RAM, Ubuntu 22.04 ou similar, acesso SSH à OLT |
| VM OLT | 1 vCPU, 512MB RAM, Ubuntu 22.04 ou similar, SSH habilitado, Python 3 |
| VM ONU | 1 vCPU, 256MB RAM, Ubuntu 22.04 ou similar, interface de rede ativa |
| Ansible | GPLv3 · 2.15 |
| Netmiko | MIT · 4.2.0 |
| Python | PSF · 3.10 |
| OpenSSH | BSD · a versão estável atual |
Roteiro
- 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.
- 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.0O que você deve ver: Ansible e Netmiko instalados. 'ansible --version' mostra a versão correta.
- 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' > hostsO que você deve ver: Arquivo 'hosts' criado com a entrada da OLT.
- 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.
- 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 EOFO que você deve ver: Playbook criado com comandos típicos de provisionamento GPON.
- 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.ymlO que você deve ver: Saída do Ansible mostrando as tarefas como 'ok' ou 'changed'.
- 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 upO que você deve ver: A ONU responde a pings da OLT.
- 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.ymlO que você deve ver: Saída mostra a ONU como 'up' ou 'active'.
- 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.ymlO que você deve ver: Playbook termina sem erros se a configuração estiver em compliance.
- 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
| Teste | Comando | Critério |
|---|---|---|
| Acesso SSH da Controladora à OLT | ssh oltadmin@192.168.56.10 | Prompt da CLI simulada aparece |
| Execução do playbook de provisionamento | ansible-playbook -i hosts provisiona_onu.yml | Tarefas retornam 'ok' ou 'changed' |
| ONU responde a ping da OLT | ping -c 3 10.10.10.2 | Pacotes recebidos sem perda |
| Validação do status da ONU | ansible-playbook -i hosts valida_onu.yml | Saída mostra ONU 'up' ou 'active' |
| Compliance da configuração | ansible-playbook -i hosts compliance_onu.yml | Playbook termina sem erros |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Erro de conexão SSH | Usuário, senha ou IP incorretos no inventário | Verifique o arquivo 'hosts' e tente novamente |
| Playbook falha ao enviar comandos | CLI simulada não reconhece comandos | Ajuste o script de simulação para aceitar os comandos esperados |
| ONU não responde a ping | Interface de rede da ONU não configurada ou up | Configure IP e ative a interface na VM ONU |
| Compliance falha | Configuração da ONU não foi aplicada corretamente | Reaplique o playbook de provisionamento e valide novamente |
| Saída inesperada do Ansible | Versão incompatível do Netmiko ou Ansible | Confirme 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
- Ansible User Guide · Ansible (Red Hat) (docs.ansible.com)
- Netmiko Documentation · Netmiko.readthedocs (netmiko.readthedocs.io)
- Python 3 Documentation · Python Software Foundation (docs.python.org)
- YAML Specification · Yaml (yaml.org)
- 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
