Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Provisionamento automatizado de switches e roteadores OpenWrt com Ansible em ambiente de varejo simulado

Você terá um ambiente virtual com dois roteadores OpenWrt e um servidor Ansible, automatizando a configuração de rede entre eles. O laboratório leva cerca de 2 horas para ser concluído.

Automação de redes de varejo com Ansible: do provisionamento à escala
Ligado ao treinamento Automação de redes de varejo com Ansible: do provisionamento à escala
ULC-LAB-VARE-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
11
Validações
5
Versões da documentação consultada
Ansible 2.15 · OpenWrt 22.03 · QEMU/KVM ou VirtualBox a versão estável atual
Objetivo

O objetivo é demonstrar, na prática, como automatizar o provisionamento e atualização de configurações básicas (hostname, interfaces, roteamento estático, Wi-Fi) em equipamentos OpenWrt usando Ansible. Você aprenderá a estruturar playbooks, inventários e variáveis para ambientes multi-loja, simulando um cenário real de varejo com múltiplos pontos de acesso e switches. O foco é garantir reprodutibilidade e escala, usando apenas ferramentas de código aberto.

Topologia

Três máquinas virtuais: uma para o servidor Ansible (192.168.56.10), duas rodando OpenWrt (192.168.56.101 e 192.168.56.102). O Ansible acessa os roteadores via SSH na rede interna. Cada OpenWrt simula um switch/roteador de loja, conectados apenas ao Ansible, não entre si.

           +-------------------+
           |   Ansible VM     |
           | 192.168.56.10    |
           +--------+---------+
                    |
         +----------+----------+
         |                     |
+--------+-------+     +-------+--------+
| OpenWrt Loja 1 |     | OpenWrt Loja 2 |
|192.168.56.101  |     |192.168.56.102  |
+----------------+     +----------------+

Equipamentos e software

ItemRequisito, licença ou versão
VM Ansible1 vCPU, 1 GB RAM, Ubuntu 22.04 ou superior, acesso SSH
VM OpenWrt1 vCPU, 256 MB RAM, OpenWrt 22.03 ou superior, interface de rede em modo bridge ou host-only
AnsibleGPLv3 · 2.15
OpenWrtGPLv2 · 22.03
QEMU/KVM ou VirtualBoxGPLv2/GPLv3 · a versão estável atual

Roteiro

  1. Preparar as VMs OpenWrt

    Baixe e instale duas VMs OpenWrt. Configure cada uma com IP fixo (192.168.56.101 e 192.168.56.102) na interface LAN. Isso simula roteadores/switches de lojas.

    Consulte https://openwrt.org/docs/guide-quick-start/virtualbox-qemu-installation para baixar e instalar.
    Edite /etc/config/network em cada VM:
    config interface 'lan'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.56.101' # ou .102
        option netmask '255.255.255.0'

    O que você deve ver: As VMs OpenWrt iniciam com IPs acessíveis na rede interna.

  2. Preparar a VM Ansible

    Instale o Ansible na VM Ubuntu. O Ansible será o orquestrador das configurações.

    sudo apt update && sudo apt install ansible -y

    O que você deve ver: O comando ansible --version retorna a versão instalada.

  3. Configurar acesso SSH sem senha

    Gere chave SSH na VM Ansible e copie para as VMs OpenWrt. O Ansible precisa de acesso SSH sem senha para automação.

    ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519
    ssh-copy-id -i ~/.ssh/id_ed25519.pub root@192.168.56.101
    ssh-copy-id -i ~/.ssh/id_ed25519.pub root@192.168.56.102

    O que você deve ver: O comando ssh root@192.168.56.101 conecta sem pedir senha.

  4. Criar inventário Ansible

    Monte um arquivo de inventário com os hosts OpenWrt. Isso define os alvos da automação.

    cat > hosts <<EOF
    [openwrt]
    192.168.56.101
    192.168.56.102
    EOF

    O que você deve ver: O arquivo hosts contém os IPs das VMs OpenWrt.

  5. Testar conectividade Ansible

    Use o módulo ping do Ansible para garantir que a comunicação SSH está funcional.

    ansible -i hosts openwrt -m ping -u root

    O que você deve ver: Retorno SUCCESS e 'pong' para cada host.

  6. Criar playbook para configurar hostname e rede

    Monte um playbook YAML para definir hostname e interface LAN em cada OpenWrt. Isso padroniza o ambiente multi-loja.

    cat > config_openwrt.yml <<EOF
    - hosts: openwrt
      gather_facts: no
      tasks:
        - name: Definir hostname
          ansible.builtin.shell: uci set system.@system[0].hostname='{{ inventory_hostname }}' && uci commit system
        - name: Configurar IP da LAN
          ansible.builtin.shell: uci set network.lan.ipaddr='{{ ansible_host }}' && uci commit network
    EOF

    O que você deve ver: Playbook YAML criado com tasks para hostname e IP.

  7. Executar o playbook de configuração

    Aplique o playbook para provisionar os roteadores OpenWrt. Isso garante consistência e velocidade.

    ansible-playbook -i hosts -u root config_openwrt.yml

    O que você deve ver: Saída de sucesso para cada task em cada host.

  8. Criar playbook para configurar Wi-Fi

    Monte um playbook para ativar e configurar o Wi-Fi (SSID, senha) em ambos OpenWrt. Isso simula o provisionamento de APs em lojas.

    cat > wifi_openwrt.yml <<EOF
    - hosts: openwrt
      gather_facts: no
      tasks:
        - name: Ativar Wi-Fi
          ansible.builtin.shell: uci set wireless.@wifi-device[0].disabled='0' && uci commit wireless
        - name: Definir SSID
          ansible.builtin.shell: uci set wireless.@wifi-iface[0].ssid='VarejoDemo' && uci commit wireless
        - name: Definir senha WPA2
          ansible.builtin.shell: uci set wireless.@wifi-iface[0].encryption='psk2' && uci set wireless.@wifi-iface[0].key='SenhaForte123' && uci commit wireless
        - name: Reiniciar Wi-Fi
          ansible.builtin.shell: wifi reload
    EOF

    O que você deve ver: Playbook YAML para Wi-Fi criado.

  9. Executar o playbook de Wi-Fi

    Aplique o playbook para ativar e padronizar o Wi-Fi nas lojas.

    ansible-playbook -i hosts -u root wifi_openwrt.yml

    O que você deve ver: Saída de sucesso para cada task em cada host.

  10. Criar playbook para atualização de firmware (simulado)

    Monte um playbook para simular atualização de firmware via sysupgrade. Não execute sem backup real em produção.

    cat > upgrade_openwrt.yml <<EOF
    - hosts: openwrt
      gather_facts: no
      tasks:
        - name: Simular atualização de firmware
          ansible.builtin.shell: echo 'sysupgrade /tmp/openwrt-firmware.bin'
    EOF

    O que você deve ver: Playbook de simulação de upgrade criado.

  11. Executar o playbook de upgrade (simulado)

    Execute o playbook de upgrade para validar o processo automatizado. Não faz upgrade real, apenas simula.

    ansible-playbook -i hosts -u root upgrade_openwrt.yml

    O que você deve ver: Saída mostrando o comando sysupgrade simulado.

Como saber que funcionou

TesteComandoCritério
Verificar hostname em cada OpenWrtssh root@192.168.56.101 'uci get system.@system[0].hostname'Retorna o hostname igual ao IP.
Verificar IP da LANssh root@192.168.56.102 'ip a show br-lan'IP configurado corretamente.
Verificar Wi-Fi ativadossh root@192.168.56.101 'iw dev'Interface wireless listada como ativa.
Verificar SSID e senhassh root@192.168.56.102 'uci get wireless.@wifi-iface[0].ssid'Retorna 'VarejoDemo'.
Verificar simulação de upgradeansible-playbook -i hosts -u root upgrade_openwrt.ymlSaída mostra comando sysupgrade simulado.

Troubleshooting

SintomaCausa provávelCorreção
Falha no ansible -m pingChave SSH não copiada ou IP incorretoVerifique IP e repita ssh-copy-id
Playbook falha com permissão negadaUsuário root não habilitado no OpenWrtHabilite login root por SSH em /etc/ssh/sshd_config
Wi-Fi não ativaDriver wireless não instalado na VM OpenWrtConsulte a documentação OpenWrt para instalar drivers compatíveis
Hostname não alteraTask Ansible com erro de sintaxeRevise o playbook e consulte a documentação do módulo shell

Segurança e hardening

  • Nunca use senha padrão em produção
  • Restrinja acesso SSH por firewall
  • Altere a senha root do OpenWrt após o laboratório
  • Remova chaves SSH desnecessárias após testes
  • Nunca execute sysupgrade real sem backup

Checklist final

Referências

  1. Ansible User Guide · Ansible (Red Hat) (docs.ansible.com)
  2. OpenWrt Documentation Start Page · Projeto OpenWrt (openwrt.org)
  3. YAML 1.2 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
3 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.