![isis.png isis.png](https://community.cisco.com/t5/image/serverpage/image-id/239502i2C0513EA2EE09952/image-dimensions/683x683?v=v2)
A automação de redes é essencial para agilizar tarefas repetitivas, reduzir erros e melhorar a eficiência operacional. O Netmiko é uma biblioteca Python que facilita a conexão com dispositivos de rede via SSH e permite a execução de comandos de forma automatizada. Neste artigo, vais aprender a usar o Netmiko para automatizar configurações em switches mas também pode ser usado outros equipamentos Cisco que rodem o sistema IOS.
Instalar o Python
Antes de começarmos, precisas de instalar o Python. O Python geralmente já está pré-instalado em muitas distribuições do Linux. Para este artigo, usarei a distribuição Linux Ubuntu.
Para verificar se o Python está instalado, abre o terminal e digite:
python3 --version
Se não estiver instalado, podes instalar o Python com o seguinte comando:
sudo apt update
sudo apt install python3
Verificar a instalação:
python3 --version
Em seguida precisas instalar o PIP. Ele é o gerenciador de pacotes do Python, que permite instalar bibliotecas adicionais. Ele geralmente é instalado junto com o Python. Para verificar se o PIP está instalado:
pip3 --version
Se o PIP não estiver instalado, podes instalá-lo manualmente, usando o seguinte comando:
python3 -m ensurepip --upgrade
Instalar o Visual Studio Code
O Visual Studio Code (VS Code) é um editor de código-fonte gratuito e de código aberto, desenvolvido pela Microsoft, que oferece uma série de recursos para programadores de diferentes linguagens e plataformas.
Para insalar o VS code, abra o programa Ubuntu Software e procure por Visual Studio Code. Em seguida instale a aplicação.
Instalar o Netmiko
Para instalar o Netmiko, executa:
pip install netmiko
Para aceder o switch, criamos um script com o nome netmiko_test01.py em Python:
from netmiko import ConnectHandler
# Definição das credenciais e do dispositivo
device = {
'device_type': 'cisco_ios',
'host': '192.168.43.165',
'username': 'silesio',
'password': 'ccie65745'
}
# Conectar ao dispositivo
login = ConnectHandler(**device)
# Executar um comando e exibir a saída
output = login.send_command('show vlan brief')
print(output)
Antes de rodar o script, precisas configurar o switch para suportar acesso remoto via ssh.
host SW1
ip domain-name binaryavenue.com
crypto key gene rsa mod 2048
ip ssh ver 2
line vty 0 4
trans input ssh
login local
username silesio privi 15 secret ccie65745
Quando executares o código, terás um resultado parecido a este:
Para configurarmos o switch, podemos usar o mesmo script com ligeiras alterações:
from netmiko import ConnectHandler
device = {
'device_type': 'cisco_ios',
'host': '192.168.43.165',
'username': 'silesio',
'password': 'ccie65745'
}
login = ConnectHandler(**device)
#esta parte será ignorada durante a execução do código
#output = login.send_command('show vlan brief')
commands = ['vlan 10', 'vlan 20', 'vlan 30', 'vlan 40']
output = login.send_config_set(commands)
print(output)
Este será o resultado do output:
Se executarmos novamente o primeiro script, veremos que as novas vlans foram adicionadas com sucesso:
Existem outras operações e funções que poderiámos explorar, como interagir com mais de um switch ao mesmo tempo ou verificar a tabela de roteamento e muito mais. Porém, seria demasiado para cobrir somente em um artigo.
Se queres aprofundar-te mais em automação de redes, podes explorar o uso de scripts mais complexos e a integração com outras ferramentas, como Nornir e Ansible.