Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:modulos:netmiko

¡Esta es una revisión vieja del documento!


Netmiko

Biblioteca de Python basada en Paramiko que facilita las conexiones con dispositivos de red.

Instalación

pip install netmiko

Dispositivos soportados

Salvo los genéricos o terminal serves, los demás hacen que Netmiko realice alguna operación tras iniciar sesión correctamente.

Sistema device_type
Arista EOS arista_eos
Cisco IOS cisco_ios
Cisco IOS-XR cisco_xr
Cisco NX-OS cisco_nxos
Junos juniper
terminal_server
generic

La lista completa de device_type soportados por Netmiko está en los índices del array CLASS_MAPPER del fichero ssh_dispatcher.py

Uso

Ejemplo básico

from netmiko import ConnectHandler
 
# Información de conexión
device = {
    'device_type': 'terminal_server',
    'ip': '10.0.65.28',
    'username': 'root',
    'password': 'abc123.',
    'port': 22
}
 
# Conexión
net_connect = ConnectHandler(**device)
 
# Ejecución de un comando
output = net_connect.send_command("uptime")
 
print()
print('#' * 50)
print(type(output))
print(output)
print('#' * 50)
print()
 
# Cerramos la conexión
net_connect.disconnect()

Conexión mediante proxy/gateway

También se conoce a esto como conexión mediante jump hosts, donde la conexión se realiza a un servidor desde el que se realiza otra conexión al dispositivo final.

Necesario instalar el módulo jumpssh: pip install jumpssh

from netmiko import ConnectHandler
from jumpssh import SSHSession
 
targetnode = {
'device_type': 'alcatel_sros',
'ip': 'targed_node',
'username': 'admin',
'password': 'admin',
'port': 22,
}
 
jh_session = SSHSession('jumpserver_ip','jumpserver_user',password='jumpserver_passwd').open()
remote_connect = ConnectHandler(**targetnode)
output = remote_connect.send_command("show router interface")
print(output)

Recursos

informatica/programacion/python/modulos/netmiko.1605278147.txt.gz · Última modificación: por tempwin