← Back to list

Automação de redes utilizando bibliotecas Python

Python é uma linguagem de programação muito utilizada em automação de redes devido à sua simplicidade e facilidade de uso. Existem diversas…

Rayane Barbosa · 2023-04-08 22:39 · 0 claps · 2.5 min read
#automação #python #nornir #netmiko #napalm
Open on Medium ↗
Wiki topics: 📟 · Gadgets & IoT

Automação de redes utilizando bibliotecas Python

Python é uma linguagem de programação muito utilizada em automação de redes devido à sua simplicidade e facilidade de uso. Existem diversas bibliotecas disponíveis para automação de redes em Python, cada uma com suas vantagens e desvantagens.

Neste artigo, iremos explorar algumas das bibliotecas mais utilizadas para automação de redes em Python, suas vantagens e desvantagens, e exemplos práticos de uso.

Netmiko

Netmiko é uma biblioteca Python multi-vendor para automatizar configuração de dispositivos de rede. É fácil de usar e suporta uma ampla variedade de dispositivos de rede, incluindo roteadores, switches e firewalls. Netmiko também suporta vários protocolos, como SSH, Telnet, e serial.

Vantagens:

  • Fácil de usar
  • Suporte para múltiplos dispositivos de rede
  • Suporte para múltiplos protocolos

Desvantagens:

  • Não suporta dispositivos proprietários
  • Pode ser necessário instalar outras bibliotecas para suportar alguns protocolos

Exemplo:

Aqui está um exemplo simples de como usar o Netmiko para se conectar a um dispositivo de rede e executar um comando. Este exemplo assume que você já tem um dispositivo de rede configurado para aceitar conexões SSH.

from netmiko import ConnectHandler

# Define as credenciais de conexão
device = {
    "device_type": "cisco_ios",
    "ip": "192.0.2.1",
    "username": "myusername",
    "password": "mypassword",
}

# Conecta ao dispositivo
with ConnectHandler(**device) as conn:
    # Executa um comando
    output = conn.send_command("show interfaces")
    print(output)

Documentação: https://github.com/ktbyers/netmiko

Nornir

Nornir é uma biblioteca Python para automação de redes. É projetada para ser simples e escalável, permitindo que você automatize tarefas em grandes redes. Nornir é baseada em plugins, o que significa que você pode facilmente adicionar suporte para dispositivos ou serviços adicionais.

Vantagens:

  • Escalabilidade
  • Suporte para plugins personalizados
  • Fácil de usar

Desvantagens:

  • Menos suporte para dispositivos de rede do que o Netmiko

Exemplo:

Aqui está um exemplo simples de como usar o Nornir para se conectar a um dispositivo de rede e executar um comando. Este exemplo assume que você já tem um dispositivo de rede configurado para aceitar conexões SSH.

from nornir import InitNornir
from nornir.plugins.tasks.networking import netmiko_send_command

# Define as credenciais de conexão
nr = InitNornir(config_file="config.yaml")
device = nr.filter(name="mydevice")

# Executa um comando
result = device.run(netmiko_send_command, command_string="show interfaces")

# Imprime o resultado
print_result(result)

Documentação: https://nornir.readthedocs.io/

  1. Napalm

Napalm é uma biblioteca Python para automatizar a configuração e operação de dispositivos de rede. Ele suporta uma ampla variedade de dispositivos de rede, incluindo roteadores, switches e firewalls, e fornece uma interface unificada para interagir com cada um deles. Napalm suporta várias operações, como coleta de informações, configuração e verificação de estados de dispositivos de rede.

Vantagens:

  • Suporte para uma ampla variedade de dispositivos de rede
  • Fácil de usar
  • Suporte para várias operações de rede

Desvantagens:

  • Menos suporte para dispositivos proprietários do que o Netmiko

Exemplo:

Aqui está um exemplo simples de como usar o Napalm para se conectar a um dispositivo de rede e coletar informações sobre a interface. Este exemplo assume que você já tem um dispositivo de rede configurado para aceitar conexões SSH.

import napalm

# Define as credenciais de conexão
driver = napalm.get_network_driver('ios')
device = driver('192.0.2.1', 'myusername', 'mypassword')

# Conecta ao dispositivo
device.open()

# Coleta informações sobre a interface
interface = device.get_interfaces()

# Imprime o resultado
print(interface)

# Fecha a conexão
device.close()

Documentação: https://napalm.readthedocs.io/

Conclusão

Existem diversas bibliotecas Python disponíveis para automação de redes, cada uma com suas próprias vantagens e desvantagens. O Netmiko é uma boa opção se você precisa de suporte para dispositivos de rede multi-vendor e protocolos de rede. O Nornir é uma boa opção se você precisa de escalabilidade e suporte para plugins personalizados. O Napalm é uma boa opção se você precisa de suporte para uma ampla variedade de dispositivos de rede e operações de rede.

Ao escolher uma biblioteca para automação de redes em Python, é importante considerar suas necessidades específicas e as limitações de cada biblioteca. Além disso, é importante ler a documentação de cada biblioteca para entender melhor como usá-las.

Com a automação de redes em Python, você pode economizar tempo e aumentar a eficiência na gestão da sua infraestrutura de rede.


메타데이터
post_id
5cbd3e7d2bdd
slug
automação-de-redes-utilizando-bibliotecas-python-5cbd3e7d2bdd
url
https://medium.com/@rayane.c.barbosa/automa%C3%A7%C3%A3o-de-redes-utilizando-bibliotecas-python-5cbd3e7d2bdd
canonical_url
https://medium.com/@rayane.c.barbosa/automa%C3%A7%C3%A3o-de-redes-utilizando-bibliotecas-python-5cbd3e7d2bdd
author_url
https://medium.com/@rayane.c.barbosa
status
ok
fetched_at
2026-07-25 22:12:05