ULC Lab · implementação reproduzível
Laboratório: Automação de configuração de switch e ponto de acesso OpenWrt com Ansible
Você terá um ambiente simulado com um switch e um ponto de acesso OpenWrt sendo configurados automaticamente via Ansible, a partir de um servidor de automação. O laboratório pode ser realizado em cerca de 2 horas.

- Duração estimada
- 120 min
- Passos
- 12
- Validações
- 5
- Versões da documentação consultada
- Ansible 2.14 · Netmiko 4.2.0 · OpenWrt 22.03 · Linux Bridge a versão estável atual
Demonstrar, de ponta a ponta, como automatizar a configuração inicial de switches e pontos de acesso em uma filial de restaurante usando Ansible, Netmiko e OpenWrt. O foco é mostrar como reduzir erros manuais e acelerar a padronização de redes, usando apenas ferramentas de código aberto e equipamentos acessíveis.
Topologia
Um servidor Linux (control node) com Ansible instalado acessa, via SSH, um switch virtualizado (usando Linux Bridge para simular um switch gerenciável) e um ponto de acesso OpenWrt em máquina virtual. Todos os dispositivos estão na mesma sub-rede privada (exemplo: 192.168.56.0/24). O servidor automatiza a configuração de VLANs no switch e SSID no AP.
+-------------------+
| Servidor Ansible |
| 192.168.56.10 |
+--------+----------+
|
|
+--------v----------+
| Switch (LinuxBr) |
| 192.168.56.20 |
+--------+----------+
|
|
+--------v----------+
| AP OpenWrt |
| 192.168.56.30 |
+-------------------+
Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| Servidor Linux (físico ou VM) | 1 vCPU, 1 GB RAM, interface de rede, Ubuntu 22.04 ou similar |
| VM OpenWrt | 1 vCPU, 256 MB RAM, versão 22.03 ou superior |
| Switch virtualizado (Linux Bridge) | 1 vCPU, 512 MB RAM, Ubuntu 22.04 ou similar |
| Ansible | GPLv3 · 2.14 |
| Netmiko | MIT · 4.2.0 |
| OpenWrt | GPLv2 · 22.03 |
| Linux Bridge | GPLv2 · a versão estável atual |
Roteiro
- Preparar o servidor de automação
Instale Ansible e Netmiko no servidor Linux. Isso é necessário para controlar os dispositivos de rede via SSH.
sudo apt update && sudo apt install -y python3-pip git pip3 install ansible netmikoO que você deve ver: Ansible e Netmiko instalados sem erros.
- Configurar o inventário do Ansible
Crie um arquivo de inventário com os endereços IP dos dispositivos a serem gerenciados.
echo '[switches] 192.168.56.20 [aps] 192.168.56.30' > hosts.iniO que você deve ver: Arquivo hosts.ini criado com os IPs corretos.
- Preparar o switch virtualizado
Crie uma bridge Linux para simular um switch gerenciável. Isso permite testar a automação de VLANs.
sudo brctl addbr br0 sudo ip addr add 192.168.56.20/24 dev br0 sudo ip link set br0 upO que você deve ver: Bridge br0 ativa e acessível pelo IP 192.168.56.20.
- Instalar e configurar OpenWrt em VM
Instale uma VM OpenWrt e configure o acesso SSH. O OpenWrt será o ponto de acesso Wi-Fi automatizado.
Consulte a documentação para instalação da imagem OpenWrt. Após instalar, configure IP estático 192.168.56.30/24 e habilite SSH.O que você deve ver: VM OpenWrt acessível via SSH em 192.168.56.30.
- Gerar chaves SSH e copiar para os dispositivos
A automação do Ansible depende do acesso SSH sem senha. Gere uma chave SSH e copie para o switch e o AP.
ssh-keygen -t ed25519 -f ~/.ssh/id_ansible -N '' ssh-copy-id -i ~/.ssh/id_ansible.pub root@192.168.56.20 ssh-copy-id -i ~/.ssh/id_ansible.pub root@192.168.56.30O que você deve ver: Acesso SSH sem senha configurado para ambos os dispositivos.
- Criar playbook para configurar VLAN no switch
Crie um playbook Ansible para configurar uma VLAN na bridge Linux. Isso simula a configuração de VLAN em switches reais.
cat > vlan_switch.yml <<EOF - hosts: switches gather_facts: no tasks: - name: Criar VLAN 10 command: ip link add link br0 name br0.10 type vlan id 10 ignore_errors: yes - name: Ativar VLAN 10 command: ip link set br0.10 up ignore_errors: yes EOFO que você deve ver: Playbook vlan_switch.yml criado.
- Criar playbook para configurar SSID no OpenWrt
Crie um playbook Ansible para configurar um novo SSID no OpenWrt via SSH, usando comandos UCI.
cat > ssid_ap.yml <<EOF - hosts: aps gather_facts: no tasks: - name: Criar SSID 'RestauranteWiFi' command: uci set wireless.@wifi-iface[0].ssid='RestauranteWiFi' - name: Aplicar configuração Wi-Fi command: uci commit wireless - name: Reiniciar Wi-Fi command: wifi reload EOFO que você deve ver: Playbook ssid_ap.yml criado.
- Executar playbooks de automação
Rode os playbooks para aplicar as configurações de VLAN e SSID nos dispositivos.
ansible-playbook -i hosts.ini vlan_switch.yml ansible-playbook -i hosts.ini ssid_ap.ymlO que você deve ver: Saída do Ansible indicando sucesso nas tarefas.
- Verificar configuração da VLAN no switch
Confirme que a VLAN foi criada na bridge Linux.
ssh root@192.168.56.20 'ip -d link show br0.10'O que você deve ver: Interface br0.10 listada com VLAN ID 10.
- Verificar SSID no OpenWrt
Confirme que o novo SSID está ativo no OpenWrt.
ssh root@192.168.56.30 'uci get wireless.@wifi-iface[0].ssid'O que você deve ver: Saída: RestauranteWiFi
- Testar conectividade entre os dispositivos
Garanta que todos os dispositivos estão acessíveis via ping.
ping -c 2 192.168.56.20 ping -c 2 192.168.56.30O que você deve ver: Pacotes recebidos de ambos os dispositivos.
- Registrar logs da automação
Salve a saída dos playbooks para análise posterior.
ansible-playbook -i hosts.ini vlan_switch.yml | tee log_vlan.txt ansible-playbook -i hosts.ini ssid_ap.yml | tee log_ssid.txtO que você deve ver: Arquivos log_vlan.txt e log_ssid.txt criados com os resultados.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Verificar se a VLAN 10 existe no switch | ssh root@192.168.56.20 'ip -d link show br0.10' | Interface br0.10 aparece com ID de VLAN 10. |
| Verificar SSID configurado no OpenWrt | ssh root@192.168.56.30 'uci get wireless.@wifi-iface[0].ssid' | Saída: RestauranteWiFi |
| Testar acesso SSH sem senha | ssh -i ~/.ssh/id_ansible root@192.168.56.20 'echo ok' | Saída: ok |
| Verificar saída dos playbooks | cat log_vlan.txt | grep 'changed=1' | Tarefa marcada como changed. |
| Testar conectividade IP | ping -c 2 192.168.56.30 | Pacotes recebidos sem perda. |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Falha ao conectar via SSH | Chave SSH não copiada ou serviço SSH não ativo | Verifique sshd nos dispositivos e recopie a chave |
| Playbook falha com permissão negada | Usuário sem permissão sudo ou root | Garanta que o usuário remoto é root ou tem sudo sem senha |
| VLAN não aparece no switch | Bridge não suporta VLAN ou comando incorreto | Consulte a documentação do Linux Bridge e ajuste o comando |
| SSID não muda no OpenWrt | Comando UCI incorreto ou interface errada | Verifique o índice do wifi-iface e consulte a documentação OpenWrt |
| Dispositivos não respondem ping | Configuração de rede incorreta ou firewall ativo | Revise IPs, máscaras e regras de firewall |
Segurança e hardening
- Utilize senhas fortes para o usuário root nos dispositivos
- Restrinja o acesso SSH apenas à rede de gerenciamento
- Desabilite login root por senha após configurar a chave SSH
- Aplique regras de firewall para limitar o acesso aos serviços de gerenciamento
- Mantenha o OpenWrt e o sistema do servidor atualizados
Checklist final
Referências
- Ansible Documentation · Ansible (Red Hat) (docs.ansible.com)
- OpenWrt User Guide · Projeto OpenWrt (openwrt.org)
- Netmiko GitHub · GitHub (repositório oficial do projeto) (github.com)
- Publicado
- 09/09/2026
- Última revisão
- 09/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 3 oficiais
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
