Entrar ou criar conta

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.

Automação de redes para eventos com Ansible do zero à orquestração
Ligado ao treinamento Automação de redes para eventos com Ansible do zero à orquestração
ULC-LAB-EVEN-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
12
Validações
4
Versões da documentação consultada
Ansible 2.15 · OpenWrt 22.03 · Python 3.10
Objetivo

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

ItemRequisito, 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
AnsibleGPLv3 · 2.15
OpenWrtGPLv2 · 22.03
PythonPSF · 3.10

Roteiro

  1. 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/generic

    O que você deve ver: Ambas as VMs OpenWrt acessíveis por ping a partir da VM Ansible.

  2. 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.12

    O que você deve ver: Acesso SSH sem senha de Ansible para ambos os OpenWrt.

  3. 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.12

    O que você deve ver: Arquivo hosts.ini criado no diretório de trabalho.

  4. 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 root

    O que você deve ver: Saída com 'pong' para ambos os hosts.

  5. 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 root

    O que você deve ver: Saída indicando que o pacote já está instalado ou foi instalado.

  6. 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.yml

    O que você deve ver: Arquivo network_config.yml criado.

  7. 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 root

    O que você deve ver: Saída mostrando mudanças aplicadas em ambos os roteadores.

  8. 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.

  9. Executar o playbook de firewall

    Aplique as regras de firewall nos roteadores.

    ansible-playbook -i hosts.ini firewall_config.yml -u root

    O que você deve ver: Saída mostrando mudanças aplicadas em ambos os roteadores.

  10. 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 root

    O que você deve ver: Pacote collectd instalado nos roteadores.

  11. 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 root

    O que você deve ver: Saída com status das interfaces de ambos os roteadores.

  12. 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

TesteComandoCritério
Verificar conectividade entre roteadoresping 192.168.100.12 -c 3Respostas de ping entre R1 e R2.
Verificar aplicação das regras de firewallansible -i hosts.ini openwrt -a 'iptables -L' -u rootRegras aplicadas conforme definido no playbook.
Verificar serviço collectdansible -i hosts.ini openwrt -a 'pgrep collectd' -u rootPID do collectd retornado em ambos os roteadores.
Verificar rollback das configuraçõesansible -i hosts.ini openwrt -a 'uci show network.lan' -u rootConfiguração de rede igual ao estado inicial.

Troubleshooting

SintomaCausa provávelCorreção
Ansible não conecta via SSHChave SSH não copiada ou SSH desabilitado no OpenWrtVerifique acesso SSH manualmente e recopie a chave.
Playbook falha ao aplicar configuraçãoSintaxe incorreta no YAML ou parâmetro inválido no módulo uciRevise o playbook e consulte a documentação do módulo uci.
Firewall bloqueando acessoRegra de firewall aplicada incorretamenteAcesse via console e remova regras conflitantes.
Collectd não iniciaPacote não instalado corretamente ou configuração inválidaReinstale 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

  1. Ansible Documentation · Ansible (Red Hat) (docs.ansible.com)
  2. Python urllib.request · Python Software Foundation (docs.python.org)
Verificação editorial
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
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.