Introdução ao Ansible e Automação de Rede

O que é Ansible?

Ansible é uma ferramenta de automação de código aberto que simplifica a configuração de servidores, aplicativos e dispositivos de rede. Imagine passar horas acessando switches via CLI para atualizar VLANs ou ACLs, com risco de erros manuais. Com Ansible, você automatiza essas tarefas em minutos, garantindo consistência em toda a rede!

Ansible usa arquivos YAML, simples e legíveis, para descrever o estado desejado dos sistemas (ex.: "VLAN 10 existe em todos os switches"). Sua linguagem declarativa permite focar no resultado, sem precisar escrever comandos passo a passo.

💡
Pro Tip: A idempotência do Ansible garante que reexecutar um playbook não duplica configurações, tornando-o seguro para atualizações de rede.

Principais Características do Ansible

  • Sem Agente: Não é necessário instalar software nos dispositivos. Ansible gerencia roteadores Cisco via SSH.

  • Modelo Baseado em Push: A partir do seu laptop (nó de controle), Ansible envia configurações para 100 switches de uma vez.

  • Sintaxe YAML: Usa arquivos simples, legíveis por humanos, para definir configurações.

  • Operações Idempotentes: Reexecutar um playbook para configurar uma ACL não a aplica novamente se já estiver presente.

  • Suporte Multiplataforma: Funciona com Cisco, Juniper, Arista e outros dispositivos de rede.

Modelo Push do Ansible

Como o Ansible Funciona em Redes?

Diferente da automação de servidores, onde comandos rodam localmente, na automação de rede:

  • As tarefas são executadas no nó de controle (máquina com Ansible).

  • Conexões usam SSH, NETCONF (protocolo estruturado, comum em Juniper) ou APIs (ex.: REST para Cisco ACI).

  • Templates Jinja2 geram configurações dinâmicas. Exemplo:

interface {{ interface_name }}
  ip address {{ ip_address }} {{ subnet_mask }}

Isso cria configurações únicas para cada dispositivo com base em dados do inventário.

  • ansible-jinja2

    AWX/Ansible Tower oferece uma interface web para gerenciar automação em grandes redes (mais detalhes na Lição 6).

    ansible-tower


Arquitetura do Ansible

Ansible é composto por componentes que trabalham juntos para automatizar redes:

  • Nó de Controle: A máquina onde o Ansible está instalado e de onde a automação é iniciada.

  • Nós Gerenciados: Dispositivos-alvo, como roteadores e switches.

  • Inventário: Um arquivo listando dispositivos, organizados por grupos (ex.: core_switches, edge_routers).

  • Módulos: Tarefas reutilizáveis, como cisco.ios.ios_config para enviar comandos CLI a dispositivos Cisco.

  • Playbooks: Arquivos YAML que definem a sequência de tarefas de automação.

  • Coleções: Pacotes com módulos, plugins e documentação para vendors específicos (ex.: cisco.ios).

arquitetura ansible

💡
Pro Tip: Organize o inventário por tipo de dispositivo ou localização (ex.: dc1_routers) para facilitar a execução de playbooks em grupos específicos.

Ansible para Automação de Rede

Ansible resolve desafios comuns de rede, como configurações manuais inconsistentes ou verificações demoradas. Aqui estão os principais casos de uso:

Caso de Uso Exemplo
Gerenciar Configurações Aplicar configs consistentes em múltiplos dispositivos.
Verificar Conformidade Garantir que dispositivos seguem políticas de segurança.
Provisionar Serviços Configurar VLANs, ACLs ou novas conexões.
Backup e Restauração Backup regular de configurações e restauração quando necessário.
Atualizações de Software Atualizar firmware
Coletar Dados Obter informações de diagnóstico para troubleshooting

Exemplo: Para configurar VLANs, Ansible garante que todos os switches tenham o mesmo ID e nome de VLAN, reduzindo erros humanos.

💡
Pro Tip: Use ansible-vault para criptografar dados sensíveis, como strings de comunidade SNMP, nos seus playbooks.
Seu Progresso

Faça login para salvar seu progresso.

Progresso do Capítulo