es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Conectándose a varios dispositivos Cisco enumerados en un archivo de texto utilizando Netmiko en Python.

Cómo conectar varios dispositivos Cisco a través de ssh connecthandle.. ¿Funcionará esto? Soy nuevo en la automatización. Por favor ayuda.

Host = open(‘devices.txt’, ‘r’)
devices = Host.readlines()
for ip in devices:
local_login(ip)
print(ip)
Host.close()

def local_login(‘ipaddr’):

devlist = {'device_type': 'cisco_ios',
   'ip': ipaddr,
   'username': klsdjfglkfj,
   'password': yyyyyyyy,
   'secret': xxxxxxx,
}
net_connect = ConnectHandler(**devlist)
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para conectar varios dispositivos Cisco a través de SSH, puedes utilizar una biblioteca de Python llamada Netmiko. Netmiko es una biblioteca multiplataforma que simplifica las conexiones SSH a dispositivos de red.

    Para conectarte a varios dispositivos Cisco a través de SSH utilizando Netmiko, sigue estos pasos:

    1. Crea una lista de direcciones IP o nombres de host de los dispositivos a los que deseas conectarte. Puedes almacenar las direcciones IP en un archivo de texto, como se muestra en el fragmento de código proporcionado.
    2. Utiliza un bucle for para iterar sobre la lista de direcciones IP.

    3. Define una función llamada local_login que tome la dirección IP como argumento. Esta función creará un diccionario de parámetros necesarios para conectarse al dispositivo, como el tipo de dispositivo, la dirección IP, el nombre de usuario y la contraseña.

    4. Crea una instancia de la clase ConnectHandler de la biblioteca Netmiko y pasa el diccionario con los parámetros del dispositivo.

    5. Ahora puedes ejecutar comandos en el dispositivo utilizando el método send_command del objeto ConnectHandler.

    Aquí tienes un ejemplo de fragmento de código que utiliza Netmiko para conectarse a varios dispositivos Cisco a través de SSH:

    from netmiko import ConnectHandler
    
    # Leer lista de dispositivos desde un archivo de texto
    with open('devices.txt', 'r') as f:
        devices = f.readlines()
    
    # Definir función para conectarse al dispositivo
    def local_login(ipaddr):
        dev_params = {
            'device_type': 'cisco_ios',     # Tipo de dispositivo
            'ip': ipaddr,                   # Dirección IP
            'username': 'myusername',       # Nombre de usuario
            'password': 'mypassword',       # Contraseña
            'secret': 'myenablepassword',   # Contraseña de habilitación
        }
        return ConnectHandler(**dev_params)
    
    # Conectarse a cada dispositivo y ejecutar comando
    for ipaddr in devices:
        connection = local_login(ipaddr.strip())
        output = connection.send_command('show run')
        print(output)
        connection.disconnect()
    

    Reemplaza 'myusername', 'mypassword' y 'myenablepassword' con tus credenciales reales.

    Este fragmento de código leerá la lista de dispositivos desde el archivo devices.txt, creará una conexión con cada dispositivo utilizando la función local_login, ejecutará el comando show run en el dispositivo, imprimirá la salida y luego se desconectará del dispositivo.

Comments are closed.