Como automatizar switches com Ansible em redes locais
Aprenda a aplicar infraestrutura como código em redes locais utilizando Ansible para configurar switches legados de forma idempotente e segura.
Resumo
- A automação de redes locais elimina erros manuais em tarefas repetitivas de configuração de switches.
- A idempotência garante que rodar o mesmo script várias vezes mantenha o equipamento no estado correto sem alterações indevidas.
- O Ansible utiliza conexões SSH diretas e comandos específicos para lidar com modelos legados sem exigir agentes internos.
- O uso de templates garante consistência em dezenas de portas e VLANs distribuídas pela infraestrutura física.
- Testes rigorosos de estresse e validação evitam quedas indesejadas em ambientes de produção consolidados.
Por que automatizar redes locais com Ansible?
Gerenciar switches de redes locais manualmente é uma tarefa exaustiva e propensa a erros humanos graves. Quando precisamos alterar uma VLAN (Virtual Local Area Network, uma forma de dividir a rede física em redes virtuais isoladas) em dezenas de equipamentos, o risco de digitar um comando errado e derrubar o acesso à internet é real. A automação entra justamente para mitigar esse problema, permitindo que a infraestrutura seja tratada como código.
Na prática, isso significa escrever um arquivo de texto descrevendo exatamente como o switch deve se comportar e deixar que o software aplique essa regra. Se você já precisou simular lentidão e caos em redes com o Toxiproxy, sabe que testar cenários antes de mexer na produção evita dores de cabeça. Com o Ansible, aplicamos essa mesma mentalidade preventiva aos equipamentos físicos.
O desafio de lidar com equipamentos legados
O grande obstáculo nas redes locais corporativas é o parque de switches antigos. Equipamentos legados geralmente não possuem APIs modernas ou suporte nativo a ferramentas de automação avançadas baseadas em REST, exigindo o bom e velho acesso via protocolo SSH simulando uma digitação humana.
Para contornar essa limitação, o Ansible utiliza módulos específicos para redes que traduzem os comandos desejados para a linguagem de cada fabricante, seja Cisco, HP ou Dell. Antes de aplicar qualquer mudança estrutural, é fundamental garantir que a energia e a estabilidade física estejam garantidas, tal como quando aprendemos como projetar banco de baterias redundante em no-breaks para evitar quedas catastróficas durante atualizações de firmware ou rotinas de manutenção pesada.
O conceito de idempotência aplicada a switches
Idempotência é um conceito fundamental na engenharia de software e infraestrutura que significa poder executar a mesma operação várias vezes obtendo exatamente o mesmo resultado final, sem efeitos colaterais indesejados. Se o comando já foi aplicado e o switch já está configurado corretamente, o sistema não altera nada.
Isso evita que scripts mal planejados fiquem reiniciando portas ou reescrevendo arquivos de configuração a todo momento. Em redes locais, a idempotência protege portas críticas de servidores e garante que ajustes incrementais ocorram sem interrupções desproporcionais para os usuários finais conectados àquela infraestrutura.
Estruturando o inventário e as credenciais seguras
O primeiro passo prático para começar a automação é organizar o arquivo de inventário, que nada mais é do que a lista com os endereços IP e os modelos dos switches da sua rede local. Para manter a segurança, nunca armazenamos senhas em texto puro dentro desses arquivos, recorrendo a gerenciadores de segredos.
Veja um exemplo básico de arquivo de inventário em formato YAML para estruturar os equipamentos da sua rede local:
all: hosts: switch_andar_1: ansible_host: 192.168.1.10 ansible_network_os: ios switch_andar_2: ansible_host: 192.168.1.11 ansible_network_os: iosCom essa estrutura definida, o Ansible sabe exatamente com qual IP falar e qual sistema operacional de rede (network_os) esperar de cada dispositivo cadastrado no inventário.
Escrevendo o primeiro playbook idempotente
Um playbook é o roteiro onde definimos as tarefas que o Ansible deve executar nos switches. Vamos criar um exemplo prático para garantir que uma VLAN específica esteja criada e ativa em todos os switches da rede local.
O código abaixo demonstra a criação automatizada de uma VLAN de visitantes usando módulos nativos para equipamentos Cisco:
- name: Configurar VLAN de visitantes nos switches hosts: switches gather_facts: no tasks: - name: Garantir que a VLAN 50 existe e esta ativa cisco.ios.ios_vlans: config: - vlan_id: 50 name: VISITANTES state: active state: mergedNa prática, o parâmetro state: merged instrui o Ansible a verificar se a VLAN 50 existe com o nome correto. Se não existir, ele cria; se já existir exatamente assim, ele simplesmente não faz nada, garantindo a idempotência da operação.
Validando a conectividade e testando portas
Depois de aplicar as configurações automatizadas, é indispensável validar se a rede continua respondendo perfeitamente e se nenhuma porta foi isolada por engano. Se houver falhas de comunicação ou portas inacessíveis, vale a pena recorrer a ferramentas de diagnóstico rápido na linha de comando, seguindo técnicas parecidas com o que fazemos quando descobrimos portas bloqueadas e testamos redes com Ncat.
Manter rotinas de teste automatizadas pós-deploy garante que a infraestrutura como código traga agilidade sem sacrificar a estabilidade operacional da rede local.
Considerações finais
A automação do provisionamento de switches utilizando Ansible transforma a gestão de redes locais, substituindo tarefas manuais repetitivas por código versionável, limpo e previsível. Mesmo ao lidar com equipamentos legados, a aplicação correta de conceitos como idempotência e o uso de módulos adequados reduzem drasticamente o tempo de indisponibilidade e os erros humanos.
Adotar essa cultura de engenharia na infraestrutura de rede prepara a organização para crescer com segurança, permitindo que a equipe foque em projetos estratégicos em vez de apagar incêndios cotidianos gerados por configurações manuais inconsistentes.