Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:modulos:netmiko

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:python:modulos:netmiko [2020/11/12 17:40] – [Dispositivos soportados] tempwininformatica: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://www.paramiko.org/|Paramiko]] que facilita las conexiones con dispositivos de red.
  
   * [[https://github.com/ktbyers/netmiko|Repositorio oficial]]   * [[https://github.com/ktbyers/netmiko|Repositorio oficial]]
Línea 14: Línea 14:
 ===== Dispositivos soportados ===== ===== Dispositivos soportados =====
  
-Salvo los genéricos o terminal serves, los demás hacen que Netmiko realice alguna operación tras iniciar sesión correctamente.+Salvo los genéricos o terminal servers, los demás hacen que Netmiko realice alguna operación tras iniciar sesión correctamente.
  
 ^        Sistema        ^ device_type ^ ^        Sistema        ^ device_type ^
Línea 25: Línea 25:
 |                       | generic     | |                       | generic     |
  
 +La lista completa de ''device_type'' soportados por Netmiko está en los índices del array ''CLASS_MAPPER'' del fichero [[https://github.com/ktbyers/netmiko/blob/master/netmiko/ssh_dispatcher.py|ssh_dispatcher.py]]
 ===== Uso ===== ===== Uso =====
  
-==== Ejecución de comando ====+==== Ejemplo básico ====
  
 <code python> <code python>
Línea 58: Línea 59:
 </code> </code>
  
 +==== 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='cisco_ios',
 +    host='192.168.56.101',
 +    port=22,
 +    username='cisco',
 +    password='cisco123!'
 +)
 +
 +# Probamos a ejecutar un comando en el router
 +output = sshCli.send_command("show ip int brief")
 +
 +# Mostramos el resultado
 +print("show ip int brief: \n{}\n".format(output))
 +</code>
 +==== 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.
 +
 +<WRAP center round info 60%>
 +Necesario instalar el módulo ''jumpssh'': ''pip install jumpssh''
 +</WRAP>
 +
 +
 +<code python>
 +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)
 +</code>
 ===== Recursos ===== ===== Recursos =====
  
   * [[https://pynet.twb-tech.com/blog/automation/netmiko-proxy.html|Netmiko SSH Proxy Support]]   * [[https://pynet.twb-tech.com/blog/automation/netmiko-proxy.html|Netmiko SSH Proxy Support]]
 +  * [[https://github.com/ktbyers/netmiko/issues/479|Help to access network device via ssh over jump server from windows script server]] (GitHub)
   * [[https://pynet.twb-tech.com/blog/automation/netmiko.html|Netmiko Library]]: introducción por el autor del módulo.   * [[https://pynet.twb-tech.com/blog/automation/netmiko.html|Netmiko Library]]: introducción por el autor del módulo.
   * [[https://saidvandeklundert.net/2020-01-17-python-screen-scraping-basics/|Screen scraping basics for network engineers]]   * [[https://saidvandeklundert.net/2020-01-17-python-screen-scraping-basics/|Screen scraping basics for network engineers]]
informatica/programacion/python/modulos/netmiko.1605199207.txt.gz · Última modificación: por tempwin