예제 #1
0
def worker(device):
    try :
        connection = netmiko.connectionHandler(**device)
    except(NetmikoTimeoutException):
        print('Timeout to device: '+ ip )
        continue
    except(AuthenticationException):
        print('Authentication Failure to device : '+ ip)
        continue
    except(SSHException):
        print('SSH connection issue to device : '+ ip )
        continue
    except(EOFError):
        print('End of file while attempting device : '+ ip)
        continue
    except Exception as unknown_error:
        print('Unknown Error: '+ unknown_error +' to device: ' + ip)
        continue
    print(connection)

    #Available versions (Switch or Router)
    list_versions = ['vios_l2-ADVENTERPRISEK9-M','VIOS-ADVENTERPRISEK9-M']

    # Check version from the device and send proper commands
    for version in list_versions:
        print('Checking software version for '+version)
        #Check device software version
        output_version = connection.send_command('show version')
        #if found run appropriate commands
        if output_version.find(version)>0 :
            print('Software version: '+ output_version)
            if version=='vios_l2-ADVENTERPRISEK9-M':
                print('Running commands for version '+ version)
                print(connection.send_command(commands_to_send_switch))
            elif version=='VIOS-ADVENTERPRISEK9-M' :
                print(connection.send_command(commands_to_send_router))
            break
        else :
            print('Not running commands for version: ' + version)
    connection.disconnect()
예제 #2
0
"""
This script uses netmiko library to
connect to Cisco switch and sends
'Show ip int breif' command

Device details are stored in iosv_l2_s1 dictionary

"""

import netmiko

iosv_l2_s1 = {
    'device_type' = 'cisco_ios',
    'ip' = '192.168.122.71',
    'usernmae' = 'admin',
    'password' = 'cisco'
}

#create connection to a network device
connection = netmiko.connectionHandler(**iosv_l2_s1)
print(connection)

#print show ip interfaces
print(connection.send_command('Show ip int breif'))

#Disconnect a connection
connection.disconnect()

#will give socket error since, connection is already closed
print(connection.send_command('Show ip int breif'))
예제 #3
0
Instead of hard coding username and password, this script prompts the user
to enter username and password

devices_ip.txt consists device ip addresses to send commands to.
"""
form getpass import getpass
import netmiko

username = input('Enter SSH username: '******'commands_file.txt', 'r') as f:
    commands_to_send = f.read().splitlines()

with open('devices_ip.txt', 'r') as f:
    device_ip = f.read().splitlines()

for ip in device_ip:
    print('Connecting to device: '+ ip)
    device = {
        'device_type' = 'cisco_ios',
        'ip' = ip,
        'usernmae' = username,
        'password' = password
    }

    connection = netmiko.connectionHandler(**device)
    print(connection)
    print(connection.send_command(commands_to_send))
    connection.disconnect()