ULC Lab · implementação reproduzível
Laboratório: Automação de configuração de roteadores OpenWrt para rede temporária com Ansible
Você vai automatizar a configuração de dois roteadores OpenWrt em VMs, simulando a montagem de uma rede temporária para eventos. O laboratório leva cerca de 2 horas.

- Duração estimada
- 120 min
- Passos
- 12
- Validações
- 4
- Versões da documentação consultada
- Ansible 2.15 · OpenWrt 22.03 · Python 3.10
O objetivo é demonstrar como usar Ansible para provisionar, configurar e desmontar rapidamente uma infraestrutura de rede temporária baseada em roteadores OpenWrt, comum em eventos. Você vai criar playbooks para aplicar configurações de rede, firewall e monitoramento, além de validar e reverter as alterações.
Topologia
Duas VMs rodando OpenWrt (R1 e R2) conectadas entre si via rede virtual (192.168.100.0/24). Uma VM de controle (Ansible) conectada à mesma rede, gerenciando os roteadores via SSH.
+----------------+
| VM Ansible |
|192.168.100.10 |
+-------+--------+
|
+------------+------------+
| |
+-----+-----+ +-----+-----+
| OpenWrt | | OpenWrt |
| R1 | | R2 |
|192.168.100.11| |192.168.100.12|
+-----------+ +-----------+Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| VM Ansible (Linux) | 1 vCPU, 1 GB RAM, interface de rede virtual, Ubuntu 22.04 ou similar |
| VM OpenWrt (R1) | 1 vCPU, 256 MB RAM, OpenWrt 22.03 ou superior |
| VM OpenWrt (R2) | 1 vCPU, 256 MB RAM, OpenWrt 22.03 ou superior |
| Ansible | GPLv3 · 2.15 |
| OpenWrt | GPLv2 · 22.03 |
| Python | PSF · 3.10 |
Roteiro
- Preparar as VMs OpenWrt
Instale as VMs OpenWrt e configure IPs estáticos em 192.168.100.11 (R1) e 192.168.100.12 (R2). Isso é necessário para que o Ansible consiga se conectar via SSH.
Consulte https://openwrt.org/docs/guide-user/installation/genericO que você deve ver: Ambas as VMs OpenWrt acessíveis por ping a partir da VM Ansible.
- Preparar a VM Ansible
Instale o Ansible e gere uma chave SSH para autenticação sem senha nos roteadores.
sudo apt update && sudo apt install ansible python3 ssh-keygen -t ed25519 ssh-copy-id root@192.168.100.11 ssh-copy-id root@192.168.100.12O que você deve ver: Acesso SSH sem senha de Ansible para ambos os OpenWrt.
- Criar o inventário do Ansible
Crie um arquivo hosts.ini listando os roteadores para o Ansible gerenciar.
[openwrt] 192.168.100.11 192.168.100.12O que você deve ver: Arquivo hosts.ini criado no diretório de trabalho.
- Testar conectividade Ansible
Verifique se o Ansible consegue se conectar aos roteadores usando o módulo ping.
ansible -i hosts.ini openwrt -m ping -u rootO que você deve ver: Saída com 'pong' para ambos os hosts.
- Instalar o pacote uci no OpenWrt
O Ansible vai manipular configurações via UCI. Garanta que o pacote uci está instalado.
ansible -i hosts.ini openwrt -m opkg -a 'name=uci state=present' -u rootO que você deve ver: Saída indicando que o pacote já está instalado ou foi instalado.
- Criar playbook para configurar interfaces de rede
Crie um playbook YAML para configurar a interface LAN de cada roteador.
Consulte https://docs.ansible.com/ansible/latest/collections/community/general/uci_module.html para sintaxe do módulo uci. Exemplo playbook: network_config.ymlO que você deve ver: Arquivo network_config.yml criado.
- Executar o playbook de configuração de rede
Aplique o playbook para configurar as interfaces LAN dos roteadores.
ansible-playbook -i hosts.ini network_config.yml -u rootO que você deve ver: Saída mostrando mudanças aplicadas em ambos os roteadores.
- Criar playbook para configurar firewall
Automatize regras básicas de firewall usando outro playbook.
Consulte https://docs.ansible.com/ansible/latest/collections/community/general/uci_module.html para exemplos de configuração de firewall.O que você deve ver: Arquivo firewall_config.yml criado.
- Executar o playbook de firewall
Aplique as regras de firewall nos roteadores.
ansible-playbook -i hosts.ini firewall_config.yml -u rootO que você deve ver: Saída mostrando mudanças aplicadas em ambos os roteadores.
- Configurar monitoramento básico
Implemente um playbook para instalar e configurar o pacote collectd nos roteadores.
ansible -i hosts.ini openwrt -m opkg -a 'name=collectd state=present' -u rootO que você deve ver: Pacote collectd instalado nos roteadores.
- Coletar informações de status
Use Ansible para coletar informações de status das interfaces de rede.
ansible -i hosts.ini openwrt -a 'ifconfig' -u rootO que você deve ver: Saída com status das interfaces de ambos os roteadores.
- Desmontar a infraestrutura (rollback)
Implemente um playbook para reverter as configurações aplicadas, retornando os roteadores ao estado inicial.
Consulte a documentação do módulo uci para comandos de remoção de configuração.O que você deve ver: Roteadores retornam à configuração padrão.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Verificar conectividade entre roteadores | ping 192.168.100.12 -c 3 | Respostas de ping entre R1 e R2. |
| Verificar aplicação das regras de firewall | ansible -i hosts.ini openwrt -a 'iptables -L' -u root | Regras aplicadas conforme definido no playbook. |
| Verificar serviço collectd | ansible -i hosts.ini openwrt -a 'pgrep collectd' -u root | PID do collectd retornado em ambos os roteadores. |
| Verificar rollback das configurações | ansible -i hosts.ini openwrt -a 'uci show network.lan' -u root | Configuração de rede igual ao estado inicial. |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Ansible não conecta via SSH | Chave SSH não copiada ou SSH desabilitado no OpenWrt | Verifique acesso SSH manualmente e recopie a chave. |
| Playbook falha ao aplicar configuração | Sintaxe incorreta no YAML ou parâmetro inválido no módulo uci | Revise o playbook e consulte a documentação do módulo uci. |
| Firewall bloqueando acesso | Regra de firewall aplicada incorretamente | Acesse via console e remova regras conflitantes. |
| Collectd não inicia | Pacote não instalado corretamente ou configuração inválida | Reinstale o collectd e revise o arquivo de configuração. |
Segurança e hardening
- Troque a senha padrão do root nos roteadores OpenWrt.
- Restrinja o acesso SSH apenas à VM Ansible.
- Remova as chaves SSH após desmontar a infraestrutura.
- Aplique regras de firewall para bloquear portas não utilizadas.
Checklist final
Referências
- Ansible Documentation · Ansible (Red Hat) (docs.ansible.com)
- Python urllib.request · Python Software Foundation (docs.python.org)
- Publicado
- 09/09/2026
- Última revisão
- 09/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 2 oficiais
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
