informatica:programacion:python:modulos:netmiko
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion:python:modulos:netmiko [2020/11/12 16:47] – [Uso] tempwin | informatica:programacion:python:modulos:netmiko [2021/06/17 12:57] (actual) – [Ejemplo Cisco] tempwin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== Netmiko ====== | ====== Netmiko ====== | ||
| - | Biblioteca de Python basada en Paramiko que facilita las conexiones con dispositivos de red. | + | Biblioteca de Python basada en [[http:// |
| * [[https:// | * [[https:// | ||
| Línea 12: | Línea 12: | ||
| </ | </ | ||
| + | ===== Dispositivos soportados ===== | ||
| + | |||
| + | Salvo los genéricos o terminal servers, los demás hacen que Netmiko realice alguna operación tras iniciar sesión correctamente. | ||
| + | |||
| + | ^ Sistema | ||
| + | | Arista EOS | arista_eos | ||
| + | | Cisco IOS | cisco_ios | ||
| + | | Cisco IOS-XR | ||
| + | | Cisco NX-OS | cisco_nxos | ||
| + | | Junos | juniper | ||
| + | | | terminal_server | ||
| + | | | generic | ||
| + | |||
| + | La lista completa de '' | ||
| ===== Uso ===== | ===== Uso ===== | ||
| - | ==== Ejecución de comando | + | ==== Ejemplo básico |
| <code python> | <code python> | ||
| from netmiko import ConnectHandler | from netmiko import ConnectHandler | ||
| + | # Información de conexión | ||
| device = { | device = { | ||
| - | ' | + | |
| ' | ' | ||
| ' | ' | ||
| Línea 27: | Línea 42: | ||
| } | } | ||
| + | # Conexión | ||
| net_connect = ConnectHandler(**device) | net_connect = ConnectHandler(**device) | ||
| - | output = net_connect.send_command_expect(" | + | # Ejecución de un comando |
| + | output = net_connect.send_command(" | ||
| print() | print() | ||
| Línea 37: | Línea 54: | ||
| print('#' | print('#' | ||
| print() | print() | ||
| + | |||
| + | # Cerramos la conexión | ||
| + | net_connect.disconnect() | ||
| </ | </ | ||
| + | ==== Ejemplo Cisco ==== | ||
| + | |||
| + | Conexión a un router Cisco y ejecución de un comando | ||
| + | |||
| + | <code python> | ||
| + | from netmiko import ConnectHandler | ||
| + | |||
| + | # Creamos la conexión SSH | ||
| + | sshCli = ConnectHandler( | ||
| + | device_type=' | ||
| + | host=' | ||
| + | port=22, | ||
| + | username=' | ||
| + | password=' | ||
| + | ) | ||
| + | |||
| + | # Probamos a ejecutar un comando en el router | ||
| + | output = sshCli.send_command(" | ||
| + | |||
| + | # Mostramos el resultado | ||
| + | print(" | ||
| + | </ | ||
| + | ==== Conexión mediante proxy/ | ||
| + | |||
| + | 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. | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | Necesario instalar el módulo '' | ||
| + | </ | ||
| + | |||
| + | |||
| + | <code python> | ||
| + | from netmiko import ConnectHandler | ||
| + | from jumpssh import SSHSession | ||
| + | |||
| + | targetnode = { | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | } | ||
| + | |||
| + | jh_session = SSHSession(' | ||
| + | remote_connect = ConnectHandler(**targetnode) | ||
| + | output = remote_connect.send_command(" | ||
| + | print(output) | ||
| + | </ | ||
| ===== Recursos ===== | ===== Recursos ===== | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
informatica/programacion/python/modulos/netmiko.1605196040.txt.gz · Última modificación: por tempwin
