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.
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.
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.
-
AWX/Ansible Tower oferece uma interface web para gerenciar automação em grandes redes (mais detalhes na Lição 6).
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
).
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.
ansible-vault
para criptografar dados sensíveis, como strings de comunidade SNMP, nos seus playbooks.